我正在尝试编写一个正则表达式来用一个空格替换文件中存在的一个或多个"+"符号.我尝试了以下方法:
echo This++++this+++is+not++done | awk '{ sub(/\++/, " "); print }'
This this+++is+not++done
Run Code Online (Sandbox Code Playgroud)
预期:
This this is not done
Run Code Online (Sandbox Code Playgroud)
任何想法为什么这不起作用?
Gur*_*uru 23
使用gsub哪个进行全局替换:
echo This++++this+++is+not++done | awk '{gsub(/\++/," ");}1'
Run Code Online (Sandbox Code Playgroud)
sub函数仅替换第一个匹配,以替换所有匹配使用gsub.
惯用的awk解决方案只是将输入字段分隔符转换为输出分隔符:
$ echo This++++this+++is+not++done | awk -F'++' '{$1=$1}1'
This this is not done
Run Code Online (Sandbox Code Playgroud)
sed你也可以用。
echo This++++this+++is+not++done | sed -e 's/+\{1,\}/ /g'
Run Code Online (Sandbox Code Playgroud)
这会匹配一个或多个+并将其替换为空格。
| 归档时间: |
|
| 查看次数: |
34760 次 |
| 最近记录: |