Classifique para o uniq e depois classifique para o pedido final:
cat originalFile.txt | awk -F "," '{print $5}' | sort | uniq -c | sort -n
Eu tenho um arquivo assim:
"string",192.168.1.0,,TX,192.168.1.2,,,100,0,0,10,10,10,,
"string",192.168.1.0,,TX,192.168.1.1,,,100,0,0,10,10,10,,
"string",192.168.1.0,,TX,192.168.1.4,,,100,0,0,10,10,10,,
"string",192.168.1.0,,TX,192.168.1.2,,,100,0,0,10,10,10,,
Com este comando, espero que ele puxe o segundo endereço IP e, basicamente, liste quantas vezes esse IP está listado neste arquivo.
cat originalFile.txt | awk -F "," '{print $5}' | sort | uniq -c > outputFile.txt
Isso classifica incorretamente. Eu quero que o arquivo de saída seja parecido com abaixo (organizado pela primeira coluna)
1 192.168.1.1
1 192.168.1.4
2 192.168.1.2
Eu tentei alterar a seção de classificação para
sort -n -k1
Eu acho que o problema é que eu estou classificando antes de executar o uniq, mas qualquer outro pedido parece quebrar o processo. No momento, minha correção é apenas executar dois comandos como esse.
cat originalFile.txt | awk -F "," '{print $5}' | sort | uniq -c > outputFile1.txt
sort -n -k1 outputFile1.txt > outputFile2.txt
Obviamente, usar um arquivo temporário para isso não é o ideal, e tenho certeza de que preciso modificá-lo e colocá-lo em uma ordem diferente. Qualquer ajuda é apreciada.
Classifique para o uniq e depois classifique para o pedido final:
cat originalFile.txt | awk -F "," '{print $5}' | sort | uniq -c | sort -n