Bash

如果第一列中的值相同,則比較第二列,如果第二列不同,則將第一列中的值保存在 txt 文件中

  • April 22, 2022

我嘗試編寫腳本來獲取第一列中的值,這些值相同,但在第二列中具有不同的值。有人知道該怎麼做嗎?範例:我有這個 .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

非常感謝。

刪除與其他行重複的所有行,然後提取第一個欄位出現兩次或更多次的行的第一個欄位:

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

無需排序:

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

輸出

163.213.54.88
9.143.93.246

引用自:https://unix.stackexchange.com/questions/699906