Admin Linux - Comando uniq
A seguir estão as opções comuns usadas com uniq. Este comando relata ou omite linhas repetidas.
Interruptor | Açao |
---|---|
-c | Linhas de prefixo pelo número de ocorrência |
-Eu | Ignorar caso |
-você | Imprime apenas linhas únicas |
-W | Verifique os caracteres, compare não mais do que n caracteres |
-s | Pule caracteres, evite comparar os dois primeiros N caracteres |
-f | Pule campos, evite comparar os primeiros N campos |
-D | Imprimir todos os grupos de linha duplicados |
Usamos uniq brevemente em alguns exemplos anteriores. ouniqcomando nos permite filtrar as linhas de arquivos com base nas correspondências. Por exemplo, digamos que temos um segundo funcionário chamado Matt Davis em Vendas. Três dias depois, a contabilidade precisa de novas estimativas para o Sales Participation Awards para o próximo trimestre. Podemos verificar a lista de funcionários usando o seguinte comando.
[[email protected] centos]# cat ./Documents/names.txt | wc -l
30
[[email protected] centos]#
Dizemos a eles 30 pessoas em Vendas para os prêmios anuais de participação. Pode haver uma boa chance de a contabilidade notar uma discrepância: eles só precisaram de 29 placas de prêmio exclusivas produzidas. Vamos tentar novamente -
[[email protected] Documents]# cut -d ":" -f 1,2 ./names.txt | sort | uniq | wc -l
29
[[email protected] Documents]#
Agora temos informações suficientes para dar à Contabilidade um número preciso de Prêmios de Participação exclusivos para o Departamento de Vendas (eles não precisarão pagar para que duas placas exclusivas sejam feitas. Basta duplicar uma segunda para "Matt Davis").
Note- Ao procurar linhas exclusivas, sempre queremos usar sort, canalizando sua saída para uniq. Se as entradas não uniq não forem sequências inline, elas não serão vistas como linhas duplicadas.
Para gerar rapidamente um relatório que nos informe quantos vendedores compartilham um escritório -
[[email protected] Documents]# sort -t":" -k3 ./names.txt | cut -d ":" -f3 |
uniq -c | sort -n
1 100
1 108
1 201
1 203
1 204
1 205
1 206
1 301
1 304
1 404
1 405
1 501
1 504
1 602
1 603
1 608
1 702
1 902
2 101
2 102
2 305
2 901
2 903
3 403
[[email protected] Documents]#