使用 fgrep / grep -F / grep --fixed-strings 时如何将换行符插入 PATTERN

使用 fgrep / grep -F / grep --fixed-strings 时如何将换行符插入 PATTERN

当使用 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

相关内容