我目前正在使用 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= 之前没有换行符或字符值的任何内容。
根据您提供的示例,最简单的选择是将表达式锚定到行首:
或者,您只能在单词边界之后匹配:
请参阅字符串的开头和字符串的结尾锚点和单词边界
重读
man grep
,并使用 Extendedgrep
和一个简单的正则表达式(和单引号来避免 shell 扩展):