2 つの数値リストをソートし、uniq を使用して交点を取得します。

2 つの数値リストをソートし、uniq を使用して交点を取得します。

ファイルAとBがあるので、次のコマンドを使用しました。

(sort -n A B) | uniq -d

これにより、両方のファイルに表示される数値が提供されます。

1
2
2
3
4
5
11
11
12
31

これは私が得た数ですが、sort -n A Bパイプするとuniq -d2ではなく11だけが得られます。私は何が間違っていましたか?

ベストアンサー1

あまり使っていないので、ちょうど言及します。以下に基づくソリューション:

comm -12 <(sort A) <(sort B)

これは<( ... )、プロセス置換を使用してファイルAとBをソートし、それを入力として供給し、comm次のものを使用します-12

  -1     suppress column 1 (lines unique to FILE1) 
  -2     suppress column 2 (lines unique to FILE2)

...両方のファイルに共通の行だけを残します。

おすすめ記事