comm は、2 つのファイルで file1 の一意の単語を見つけることができません。

comm は、2 つのファイルで file1 の一意の単語を見つけることができません。

commコマンドを使用してファイル1からすべての一意の単語を抽出する必要がある2つのテキストファイルがあります。したがって、ファイル2にない単語だけが抽出されます。そのコマンドを使用するように求められましたcomm(またはではありませんdiffjoin

私はeg.のような多くのことを試しましたが、comm -32 file1 file2これはファイル1のすべての単語を返します。

答え1

comm各単語が1行(比較する行全体)にあるファイルを並べ替える必要があります。

だからそうです

(export LC_ALL=C
comm -23 <(grep -Po '\S+' file1 | sort) <(grep -Po '\S+' file2 | sort))

(GNUがPCREをサポートし、シェルが、またはgrep同じプロセス置換をサポートしていると仮定)。ksh93zshbash

sortsumsのバイト間比較を実行するようにロケールをCに変更しましたcomm

答え2

ファイルの 1 つが Windows 環境にある場合、行の終端が異なる場合があります。バラよりここ転換のため。

関連情報