grepを使用して別のファイル内の1つの.txtファイルのすべてのインスタンスを見つけるにはどうすればよいですか?

grepを使用して別のファイル内の1つの.txtファイルのすべてのインスタンスを見つけるにはどうすればよいですか?

grepを使用してある.txt文書の行が別の文書に表示されるかどうかを比較するにはどうすればよいですか?

また、逆のケースを見つけるためにgrepをどのように使用しますか?それはできますかgrep -v

ベストアンサー1

grep -F -f inner_file outer_file

マニュアルのパラメータ説明GNU grep:

-F--fixed-strings

パターンを改行文字で区切られた固定文字列のリストとして解釈し、どの文字列も一致します。 (-FPOSIXで指定)

-f file--file=file

1行に1つずつファイルからパターンを取得します。空のファイルにはパターンが0個含まれているため、一致するものはありません。 (-fPOSIXで指定)

次のオプションも使用できます-x

-x--line-regexp

行全体と正確に一致する一致のみを選択します。 (-xPOSIXで指定)

-v反対の結果を調べるオプションを追加します。

-v--invert-match

一致しない行を選択するには、一致の意味を逆にします。 (-vPOSIXで指定)

クイックテストにはBashシェルを使用してください。

# grep -F -f <(printf 'A\nZ\n') <(printf 'A\nB\nC\n')
A
# echo $?
0
# grep -F -f <(printf 'A\nZ\n') <(printf 'B\nC\n')
# echo $?
1
# grep -v -F -f <(printf 'A\nZ\n') <(printf 'B\nC\n')
B
C
# echo $?
0
# grep -x -F -f <(printf 'A\nZ\n') <(printf 'AA\nBB\nCC\n')
# echo $?
1

おすすめ記事