grepを使用してある.txt文書の行が別の文書に表示されるかどうかを比較するにはどうすればよいですか?
また、逆のケースを見つけるためにgrepをどのように使用しますか?それはできますかgrep -v
?
ベストアンサー1
grep -F -f inner_file outer_file
マニュアルのパラメータ説明GNU grep:
-F
、--fixed-strings
パターンを改行文字で区切られた固定文字列のリストとして解釈し、どの文字列も一致します。 (
-F
POSIXで指定)
-f file
、--file=file
1行に1つずつファイルからパターンを取得します。空のファイルにはパターンが0個含まれているため、一致するものはありません。 (
-f
POSIXで指定)
次のオプションも使用できます-x
。
-x
、--line-regexp
行全体と正確に一致する一致のみを選択します。 (
-x
POSIXで指定)
-v
反対の結果を調べるオプションを追加します。
-v
、--invert-match
一致しない行を選択するには、一致の意味を逆にします。 (
-v
POSIXで指定)
クイックテストには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