awk
Perintah di bawah ini menghapus semua baris duplikat seperti yang dijelaskan di sini :
awk '!seen[$0]++'
Jika teks berisi baris kosong, semua kecuali satu baris kosong akan dihapus.
Bagaimana saya bisa menjaga semua baris kosong sementara menghapus semua baris duplikat yang tidak kosong, hanya menggunakan awk
? Tolong, sertakan juga penjelasan singkat.
Yang harus Anda lakukan adalah memeriksa baris kosong (benar-benar kosong atau hanya kosong) terlebih dahulu.
sumber
Berikut adalah
awk
solusi lain , mirip dengan jawaban @ Thor, kurang ringkas tetapi lebih efisien:Dengan ini, kami hanya memeriksa apakah
a[$0]
sudah ada atau belum. Jika tidak, inisialisasi maka cetak. Dalam hal ini, kami tidak memiliki referensi, penugasana[$0]
apakah ada.sumber