Shell-Script

使用自定義模式排序?

  • August 12, 2020

不是根據 az 排序,而是可以根據出現進行排序嗎?

所需任務的範例,

輸入 =

Example
Example
Hello
Hello
Input
Input
List
List
World
World
...

期望的輸出 =

Example
Hello
Input
List
World
Example
Hello
Input
List
World
...

因此,在這種情況下,它獲取每行的第一次出現並將它們按順序排列,然後每行的第二次出現並將它們按順序排列,直到不再出現

您始終可以使用 decorate - sort - undecorate 方法:

<input awk -v OFS=: '{print ++n[$0], $0}' |
 sort -t: -k1,1n -k2 |
 cut -d: -f2-

whereawk在每一行前面加上該行的出現作為一個數字,sort以便作為其第一個key(數字順序)進行排序,並將原始行作為第二個鍵(預設區域設置排序順序)。

這裡使用:作為分隔符而不是awk’ 的預設 SPC 和sort’ 從非空白到空白的預設轉換與該預設值一樣,SPC 將包含在第二個鍵中,這可能(不太可能)對排序產生影響。

引用自:https://unix.stackexchange.com/questions/604124