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行に入力したいと思います。

答え1

これは構文を使用して$'\n'行うことができます(参照:https://stackoverflow.com/a/3182519/3822464)。たとえば、

fgrep word1$'\n'word2

または、パターン全体を次のようにラップできます(don_crissti提供)。

fgrep $'word1\nword2\nword3'

答え2

grep -F 'word1
word2' infile

または1行を好む場合:

grep -F -e 'word1' -e 'word2' infile

関連情報