tampilkan duplikat data dengan awk print $ 2, $ 3, $ 4 dalam satu baris

0

Jika saya memiliki 2 daftar yang berisi yang berikut (contoh):

list1
x;00:26:82:50:00:00;192.168.1.195;COMPUTER1
x;00:26:82:50:11:11;192.168.1.195;COMPUTER2
x;00:26:82:50:22:22;192.168.1.196;COMPUTER3

list2
x;00:26:82:50:11:11;192.168.1.197;COMPUTER3

Ketika saya menjalankan perintah ini, tunjukkan saya duplikat:

awk -F\; '{print $2}' list* | sort | uniq -d
out: 00:26:82:50:11:11
awk -F\; '{print $3}' list* | sort | uniq -d
out: 192.168.1.195
awk -F\; '{print $4}' list* | sort | uniq -d
out: COMPUTER3

Pertanyaanku adalah:

Bagaimana saya bisa menjalankan perintah (awk -F \; .. dll) pada satu baris dan mendapatkan hasil yang sama?

PD: tanpa &&

Terima kasih

ajcg
sumber

Jawaban:

1

Anda bisa melakukan ini dengan skrip sederhana langsung dari baris perintah, menggunakan cut (1) alih-alih awk (1), seperti ini:

$ for field in 2 3 4; do cut -d\; -f${field} list* | sort | uniq -d; done
ccs242
sumber
Saya punya pertanyaan lain tentang ini. Dalam superuser.com/questions/1199802/…
ajcg