Cukup ubah perintah awk Anda ke kolom yang ingin Anda lakukan untuk menghapus duplikat baris berdasarkan (dalam kolom kasus ketiga Anda):
awk '!seen[$3]++' filename
Perintah ini memberitahu awk
baris mana yang akan dicetak. Variabel $3
memegang seluruh isi kolom 3 dan tanda kurung siku adalah akses array. Jadi, untuk setiap kolom ketiga baris dalam nama file, simpul array bernama seen
bertambah dan garis dicetak jika konten dari node itu (kolom3) tidak ( !
) sebelumnya ditetapkan.
awk
Perintah di atas akan berfungsi jika kolom Anda di file input dibatasi dengan space
atau di Tab
antara mereka sendiri, jika kolom dibatasi dengan sesuatu yang lain, Anda perlu mengatakannya untuk memilih -F
opsi tersebut. Jadi, misalnya jika semua kolom dibatasi dengan koma ( ,
) dan ingin menghapus garis berdasarkan -F','
opsi penggunaan kolom ketiga .
awk -F',' '!seen[$3]++' filename
-u
hanya akan menghapus garis duplikat , bukan kunci duplikat ... tapi aku salah.