回答:
diff
オプションと同様に、comm
プロセスを置換してコマンドを使用できますsort
(comm
操作するファイルをソートする必要があります)。これにより-1
、最初のファイルの-2
行のみ-3
を抑制したり、2番目のファイルの行のみを抑制したり、両方の行を抑制したりすることで、共通の行、一方のファイルまたは他方のファイルの行のみに焦点を当てることができます。最初のファイルのみにあり、2番目のファイルにはないすべての行を表示します
comm -23 <(sort file1) <(sort file2)
もちろん、必要であれば、次のgrep
ように使用することも検討できます。
grep -vFxf file2 file1
行を扱うなるfile2
パターンとしてしかない一致を持たないFILE1からの行を印刷(-v
)からライン(治療する場合-f
)file2
固定文字列として(-F
全体の行に一致しなければなりません)( -x
)。
このgrep
ソリューションには、ファイルを並べ替える必要がないという利点がありますが、一方のファイルの行だけをチェックし、もう一方のファイルの行はチェックせず、一度に両方向の行をチェックしません。
comm
必要であることを強調します。(はい、あなたは間接的にそれを言及しますが、あなたがそれを表現した方法を見落とすのは簡単です)。また、このシナリオでは、よりもはるかに効率的です。あれば解決策は簡単にメモリ不足になる可能性が(DFAにNFAを変換するときの指数爆発)が大きく、我々はない長い前にこのについての質問がありました。comm
diff
grep
file2