alv*_*vas 27 unix sorting count natural-sort uniq
如何对uniq -c输出进行自然排序?
当计数<10时,uniq -c | sort输出看起来很好:
alvas@ubi:~/testdir$ echo -e "aaa\nbbb\naa\ncd\nada\naaa\nbbb\naa\nccd\naa" > test.txt
alvas@ubi:~/testdir$ cat test.txt
aaa
bbb
aa
cd
ada
aaa
bbb
aa
ccd
aa
alvas@ubi:~/testdir$ cat test.txt | sort | uniq -c | sort
1 ada
1 ccd
1 cd
2 aaa
2 bbb
3 aa
Run Code Online (Sandbox Code Playgroud)
但是当计数大于10甚至数千/数时,这种排序会混乱,因为它是按字符串排序而不是按自然整数排序:
alvas@ubi:~/testdir$ echo -e "aaa\nbbb\naa\nnaa\nnaa\naa\nnaa\nnaa\nnaa\nnaa\nnaa\nnaa\nnaa\nnaa\nnnaa\ncd\nada\naaa\nbbb\naa\nccd\naa" > test.txt
alvas@ubi:~/testdir$ cat test.txt | sort | uniq -c | sort
10 naa
1 ada
1 ccd
1 cd
1 nnaa
2 aaa
2 bbb
4 aa
Run Code Online (Sandbox Code Playgroud)
如何按降序/按顺序执行"uniq -c"的自然排序输出?
fed*_*qui 38
-n在sort命令中使用,以便按数字排序.还-r允许您反转结果:
$ sort test.txt | uniq -c | sort -n
1 ada
1 ccd
1 cd
1 nnaa
2 aaa
2 bbb
4 aa
10 naa
$ sort test.txt | uniq -c | sort -nr
10 naa
4 aa
2 bbb
2 aaa
1 nnaa
1 cd
1 ccd
1 ada
Run Code Online (Sandbox Code Playgroud)
来自man sort:
-n, - 数字排序
根据字符串数值进行比较
-r, - 反向
扭转比较结果
| 归档时间: |
|
| 查看次数: |
18506 次 |
| 最近记录: |