是否可以根据出现次数排序,而不是根据 az 排序?
所需任务的示例,
输入 =
Example
Example
Hello
Hello
Input
Input
List
List
World
World
...
期望输出=
Example
Hello
Input
List
World
Example
Hello
Input
List
World
...
因此,在这种情况下,它获取每行的第一次出现并将它们按顺序排列,然后获取每行的第二次出现并将它们按顺序排列,直到不再出现为止
答案1
您始终可以使用装饰 - 排序 - 取消装饰方法:
<input awk -v OFS=: '{print ++n[$0], $0}' |
sort -t: -k1,1n -k2 |
cut -d: -f2-
其中,awk
在每行前面添加行的出现次数作为数字,以sort
作为其第一个键(数字顺序)进行排序k
,并将原始行作为第二个键(默认区域设置排序顺序)。
这里使用:
作为分隔符而不是awk
的默认 SPC 以及sort
从非空白到空白的默认转换(与默认情况一样),SPC 将包含在第二个键中,这可能(不太可能)对排序产生影响。