我有一个命令(cmd1),它通过一个日志文件来过滤一组数字。这些数字是随机顺序的,所以我sort -gr
用来获取一个反向排序的数字列表。此排序列表中可能存在重复项。我需要找到该列表中每个唯一数字的计数。
例如,如果 cmd1 的输出是
100 100 100 99 99 26 25 24 24
我需要另一个命令,我可以将上面的输出通过管道传输到,以便我得到:
100 3 99 2 26 1 25 1 24 2
我有一个命令(cmd1),它通过一个日志文件来过滤一组数字。这些数字是随机顺序的,所以我sort -gr
用来获取一个反向排序的数字列表。此排序列表中可能存在重复项。我需要找到该列表中每个唯一数字的计数。
例如,如果 cmd1 的输出是
100 100 100 99 99 26 25 24 24
我需要另一个命令,我可以将上面的输出通过管道传输到,以便我得到:
100 3 99 2 26 1 25 1 24 2
如果您可以处理格式略有不同的输出,则可以执行以下操作:
你会回来:
还要添加 -u 开关。因此,您将拥有:
从排序手册页:
-u, --unique不带 -c,只输出相等运行的第一个
(我假设您的输入是每行一个数字,因为这就是 sort 会输出的内容。)
你可以试试 awk:
<your_command> | awk '{numbers[$1]++} END {for (number in numbers) print number " " numbers[number]}'
这将为您提供一个未排序的列表(据我所知,在 awk 中遍历数组的顺序是未定义的),因此您必须再次根据自己的喜好进行排序。