我有一个如下所示的文件:
"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,,
我希望这个命令能提取第二个 IP 地址,并列出这个文件中该 IP 出现的次数。
cat originalFile.txt | awk -F "," '{print $5}' | sort | uniq -c > outputFile.txt
排序不正确。我希望输出文件如下所示(按第一列排列)
1 192.168.1.1
1 192.168.1.4
2 192.168.1.2
我尝试将排序部分更改为
sort -n -k1
我认为问题在于我在执行 uniq 之前进行了排序,但任何其他顺序似乎都会破坏该过程。现在我的解决方法是只运行两个这样的命令。
cat originalFile.txt | awk -F "," '{print $5}' | sort | uniq -c > outputFile1.txt
sort -n -k1 outputFile1.txt > outputFile2.txt
显然,使用临时文件并不理想,我确信我只需要稍微修改一下并将其按不同的顺序排列即可。任何帮助都非常感谢。
答案1
对 uniq 进行排序,然后对最终顺序进行排序:
cat originalFile.txt | awk -F "," '{print $5}' | sort | uniq -c | sort -n