使用 grep 忽略输出

使用 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 之后的所有结果,因为我无法保证我使用的文件结构在 GHz= 之前总是有 z=。

我想忽略 z= 之前没有换行符或字符值的任何内容。

答案1

根据您提供的示例,最简单的选择是表达式到行的开头:

grep '^z=' note

或者,你可以只在词边界

grep '\bz=` note

绳子起始和结束处的锚点单词边界

答案2

重新阅读man grep,并使用grep带有简单正则表达式的扩展(以及单引号以始终避免 shell 扩展):

grep -E '^z=' note

相关内容