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

おすすめ記事