commコマンドを使用してファイル1からすべての一意の単語を抽出する必要がある2つのテキストファイルがあります。したがって、ファイル2にない単語だけが抽出されます。そのコマンドを使用するように求められましたcomm
(またはではありませんdiff
)join
。
私は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
同じプロセス置換をサポートしていると仮定)。ksh93
zsh
bash
sort
sumsのバイト間比較を実行するようにロケールをCに変更しましたcomm
。
答え2
ファイルの 1 つが Windows 環境にある場合、行の終端が異なる場合があります。バラよりここ転換のため。