我正在寻找一个简短的片段,使用标准工具或通用脚本语言来查找,计算和合并连续的重复项.
说我们的输入是:
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' ' -