mostra dados duplicados com impressão awk $ 2, $ 3, $ 4 em uma única linha

0

Se eu tiver 2 listas que contenham o seguinte (exemplos):

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

Quando eu executo este comando, mostre-me duplicatas:

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

A minha pergunta é:

Como posso iniciar o comando (awk -F \; .. etc) em uma única linha e obter os mesmos resultados?

PD: sem & &

Obrigado

    
por bdc 14.04.2017 / 18:26

1 resposta

1

Você pode fazer isso com um script simples direto da linha de comando, usando cut (1) ao invés de awk (1), assim:

$ for field in 2 3 4; do cut -d\; -f${field} list* | sort | uniq -d; done
    
por 14.04.2017 / 21:03