Shell-Script

計算和合併連續模式

  • January 29, 2014

我正在尋找一個簡短的片段來使用標準工具或通用腳本語言來查找、計算和合併連續的重複項。

假設我們的輸入是:

1 2 2 2 7 22 a b b c c c c c d dd 2 2 c c

作為輸出,我們希望有類似的東西:

1 3*2 7 22 a 2*b 5*c d dd 2*2 2*c

保持順序並僅合併連續模式很重要。

這個怎麼樣:

printf '%s\n' 1 2 2 2 7 22 a b b c c c c c d dd 2 2 c c | uniq -c

輸出:

     1 1
     3 2
     1 7
     1 22
     1 a
     2 b
     5 c
     1 d
     1 dd
     2 2
     2 c

它簡單易行(類似)。

要獲取您的格式:

printf '%s\n' 1 2 2 2 7 22 a b b c c c c c d dd 2 2 c c |
 uniq -c | sed 's/^ *//;s/^1 //;s/ /*/' | paste -sd' ' -

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