当使用 fgrep 时,手册页说它会
将 PATTERN 解释为由换行符分隔的固定字符串列表,其中任何一个都将被匹配。
在 bash 中,将换行符插入到 PATTERN 参数中的正确方法是什么(即,它会匹配手册页中的任何行)。
我尝试了以下方法但没有成功:
fgrep word1\nword2
fgrep word1\rword2
fgrep "word1\nword2"
fgrep "word1\rword2"
如果可能的话,我希望所有命令都在一行上。
答案1
这可以通过使用$'\n'
语法来完成(参见https://stackoverflow.com/a/3182519/3822464)。例如:
fgrep word1$'\n'word2
或者你可以这样包装整个模式(信用don_crissti)
fgrep $'word1\nword2\nword3'
答案2
grep -F 'word1
word2' infile
或者,如果您喜欢一行:
grep -F -e 'word1' -e 'word2' infile