Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash uniq,如何显示后面的计数_Bash_Unix - Fatal编程技术网

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

bash uniq,如何显示后面的计数,bash,unix,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 请给出如何改变这一点的建议。谢谢 使用awk更改列的顺序: cat number.txt | sort -n | uniq -c | awk '{ print $2, $1 }' Perl版本: perl -lne '$occ{0+$_}++; END {print "$_

通常,当我执行cat number.txt | sort-n | uniq-c时,我会得到如下数字:

3 43 4 66 2 96 1 97 但我需要的是后面出现的次数,如下所示:

43 3 66 4 96 2 97 1 请给出如何改变这一点的建议。谢谢

使用awk更改列的顺序:

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

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


…如果您使用的是awk,当然您也应该从那里处理排序和uniqing!。。。“而且这一点很重要。”克里斯·杰斯特·杨我只是把它钉在末端,以获得所需的输出。UNIX工具是用于黑客攻击的,对吗?我一直在研究如何使用awk来记住这些事情:-@JonathonReinhart谢天谢地,我发现Perl比awk更容易记住,请看我的答案。再说一次,我还没有用awk进行任何认真的编码,所以这不会得到出现次数。您可以使用-n选项删除while,并通过声明}{shorthand或编写一个显式的结束块来将打印移到结束块。例如:perl-ne'$occ{0++$}++}{print$$occ{$}\n用于排序{$a$b}keys%occ'numbers.txt。我相信您已经知道了这一点,但可能对其他人有用,但对于多功能一体解决方案,+1除外。@jaypal是的,我知道-n和END,我几乎用过它。我可能应该把它放在我的答案中。近年来,我更多地使用Ruby,而END很少使用,所以我已经摆脱了在Perl中使用它的习惯。Thanks@ChrisJester Young。感谢您的编辑并提前祝贺您达到10万人。@jaypal谢谢!我做到了,也谢谢您的祝贺。:-DAwesome!!现在只领先50万。加油!:P
cat number.txt | sort -n | uniq -c | sed -r 's/^([0-9]+) ([0-9]+)$/\2 \1/g'