我能够在sed命令中完成此操作,但无法在perl中运行它。想要在靠近但没有任何空格或字母数字的管道字符之间添加空格。
输入==> a | 123 | ## |||| 预期输出==> a | 123 | ## | | | |
此sed命令可以正常工作:
echo "a|123|##||||" | sed 's/\([^[:blank:][:alnum:]]\)|/\1 | /g'
Run Code Online (Sandbox Code Playgroud)
以上命令的输出==> a|123|## | | | |
在perl中,我无法正常运行
echo "a|123|##||||" | perl -pe 's/\([^[:blank:][:alnum:]]\)|/\1 | /g'
Run Code Online (Sandbox Code Playgroud)
与上述命令的输出
| 一个| | | 1 | 2 | 3 | | | #| #| | | | | | | | |
仅在|彼此相邻的空间之间添加空间
echo "a|123|##||||" | perl -pe's/\|(?=\|)/\| /g'
Run Code Online (Sandbox Code Playgroud)
为了能够检测到连续(且重叠!)对,并且使用多于两个的对,我使用了前瞻性|:仅消耗了一场比赛中的第一对,因此第二场比赛留在了下一场比赛中,以防万一之后又出现了(再次声明为先行)。
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |