最初の列の値が等しい場合は2番目の列を比較し、2番目の列が異なる場合は最初の列の値をtxtファイルに保存します。

最初の列の値が等しい場合は2番目の列を比較し、2番目の列が異なる場合は最初の列の値をtxtファイルに保存します。

最初の列の値は同じですが、2番目の列の値は別のスクリプトを作成しようとします。これを行う方法を知っている人はいますか?例: 次の .txt ファイルがあります。

163.213.54.88     aaaaa
163.213.54.88     bbbbb
9.143.93.246      ccccc
219.98.24.226     aaaaa
163.213.54.88     aaaaa
215.134.242.10    ccccc
131.16.225.31     bbbbb
9.143.93.246      aaaaa
131.16.225.31     bbbbb

この場合、結果は次のようになります。

163.213.54.88
9.143.93.246

とても感謝しています。

答え1

他の行と重複するすべての行を削除した後、最初のフィールドが複数回表示される行の最初のフィールドを抽出します。

$ sort -u file | awk '++count[$1] == 2 { print $1 }'
163.213.54.88
9.143.93.246

答え2

並べ替える必要はありません。

awk '!($1 in a) {a[$1] = $2; next} $2 != a[$1] {print $1}' file

出力

163.213.54.88
9.143.93.246

答え3

@Kusalanandaの答えと非常に似ていますが(彼は私より一歩先にありました)、呼び出しはより簡単ですawk

sort -u file | awk '{print $1}' | uniq -d

この方法はまた、他の行と重複する行を削除し、その行の最初のフィールドを抽出し、最初のフィールドのすべての項目を複数回出力します。

関連情報