bash uniq,如何在后面显示计数

时间:2014-05-25 06:08:47

标签: bash unix

通常当我cat number.txt | sort -n | uniq -c时,我会得到这样的数字:

3 43
4 66
2 96
1 97

但我需要的是后面出现的数字显示,如下所示:

43 3
66 4
96 2
97 1

请提供有关如何更改此内容的建议。谢谢。

3 个答案:

答案 0 :(得分:3)

使用awk更改列的顺序:

cat number.txt | sort -n | uniq -c | awk '{ print $2, $1 }'

答案 1 :(得分:3)

Perl版本:

perl -lne '$occ{0+$_}++; END {print "$_ $occ{$_}" for sort {$a <=> $b} keys %occ}' < numbers.txt

答案 2 :(得分:1)

通过GNU sed

cat number.txt | sort -n | uniq -c | sed -r 's/^([0-9]+) ([0-9]+)$/\2 \1/g'