Zac*_*nce 6 text-processing regular-expression
我目前正在运行此命令来审查缩进的待办事项列表。
sed -e 's/\(\s\+- \)\(.*\)/\1XXX/g'
Run Code Online (Sandbox Code Playgroud)
很棒,只是我希望X
s 的数量与匹配字符的数量相匹配。我怎么做?正确的方法并不特别需要使用sed。
当前示例输入:
- Hello World
- Earth
Run Code Online (Sandbox Code Playgroud)
输出:
- XXX
- XXX
Run Code Online (Sandbox Code Playgroud)
期望:
- XXXXXXXXXX
- XXXXX
Run Code Online (Sandbox Code Playgroud)
Perl 解决方案:
perl -pe 's/^( *- )(.+)/$1."X"x length($2)/e'
Run Code Online (Sandbox Code Playgroud)
这用于获取替换中"X" x length($2)
正确的 s 数量。X
测试输入:
- Hello World
- Earth
This is not - censored
Run Code Online (Sandbox Code Playgroud)
输出:
- XXXXXXXXXXX
- XXXXX
This is not - censored
Run Code Online (Sandbox Code Playgroud)