Игнорирование вывода с grep

Я в настоящее время использую grep для определения местоположения строки в файле. Однако я получаю результат, который я не хочу.

Пример произвел:

user@user:~/tmp$ grep "z=" note > tmp.txt | cat tmp.txt 
z=0.016728
 S_1.4 GHz=   1597.61548     mJy, for L_1.4=1E24 W Hz^-1 (index=0.8)

Я не хочу использовать grep для игнорирования всех результатов после z=0.016728, потому что я не могу гарантировать, что файловая структура, которую я использую, будет всегда иметь z = перед GHz =.

Я хотел бы проигнорировать что-либо без новой строки или с символьным значением прежде z =.

0
задан 31 May 2018 в 12:36

2 ответа

Исходя из примера, который вы дали, самым простым вариантом было бы привязать выражение к началу строки:

grep '^z=' note

В качестве альтернативы, вы можете сопоставить только после граница слова :

grep '\bz=` note

См. Начало строки и конец якоря строки и Границы слова

2
ответ дан 29 October 2019 в 05:24

Перечитать man grep, и используйте Расширенный grep с простым Регулярным выражением (и одинарные кавычки для предотвращения оболочки expandion всегда):

grep -E '^z=' note
1
ответ дан 29 October 2019 в 05:24

Другие вопросы по тегам:

Похожие вопросы: