使用自訂模式排序?

使用自訂模式排序?

是否可以根據出現次數排序,而不是根據 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 將包含在第二個鍵中,這可能(不太可能)對排序產生影響。

相關內容