最初の列の値は同じですが、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
この方法はまた、他の行と重複する行を削除し、その行の最初のフィールドを抽出し、最初のフィールドのすべての項目を複数回出力します。