AとBという2つのデータセットがあります。各データセットの形式は、1行につき1つの数値です。例えば、
12345
23456
67891
2345900
12345
A の一部のデータは、データセット B に含まれません。これらすべてのデータをAにどのようにリストし、AとBが共有するすべてのデータをどのようにリストしますか? Linux/UNIX コマンドを使用してこれを行うには?
答え1
comm
コマンドを使用してください。
ファイルをリストするlistA
場合listB
:
comm listA listB
デフォルトでは、commは3つの列を返します。リストAのみのアイテム、リストBのみのアイテム、および2つのリストに共通のアイテム。
またはargを使用して-1
個々の-2
列を抑制できます-3
。
答え2
これにより、AにはあるがBにはない固有の項目が提供されます。
cat A|perl -ne '$z=$_;chomp($z);$y=`grep $z B`;if ($y== "") {print "\n$z";}'|sort -u
これにより、AとBの共通項目のリストが提供されます。
cat A |xargs -i grep {} B|sort -u