有没有办法用Sed / Awk / Perl替换其长度的模式?我正在寻找可以在Bash脚本中使用的小型可移植命令。
我有全部以特定字符(比如说x
)开头的字符串,并且我想用x
长度来代替这些重复。
所以
xxxx rest of the line
xxx again
xx again and again
xxxxx you got my point
Run Code Online (Sandbox Code Playgroud)
会成为
4 rest of the line
3 again
2 again and again
5 you got my point
Run Code Online (Sandbox Code Playgroud)
Sed可能不是一个好的候选人。我知道Perl有一个e
选项,允许替换字符串来执行代码,但是我不知道怎么会在这里使用:perl -pe 's/^(x+)/length($1)/e'
?
将第一个样式替换为其长度:
awk '$1=length($1)' file
Run Code Online (Sandbox Code Playgroud)
输出:
4条线的其余部分 再3 2一次又一次 5你明白我的意思