我有我想用一个bash脚本编辑一些配置文件(和脚本)编辑配置文件:如何用SED
.
.
.
# ... foo ...
foo
.
.
.
我用这个:
sed -i 's/foo/bar/'
但按预期也会在评论行中编辑foo,我该如何防止?
我有我想用一个bash脚本编辑一些配置文件(和脚本)编辑配置文件:如何用SED
.
.
.
# ... foo ...
foo
.
.
.
我用这个:
sed -i 's/foo/bar/'
但按预期也会在评论行中编辑foo,我该如何防止?
这应做到:
sed -i '/^ *#/! s/foo/bar/' filename
解释(除了原来的sed
命令):
s
命令可以采取addresses。/^ *#/
暗示任何以*#
开头的行!
之后的地址取消其效果。因此,所有不以*#
开头的行都会受到影响。
另一种解决方案:
sed -i 's/\[^#\]foo/bar/g' filename
您可以使用此也
sed '/^[^#]/s/foo/bar/g' file_name
'的sed -i“/^*#/! s/foo/bar /''?它确保注释行总是以'#'开始,没有前导空格,你可以在'#'之前放置'*' – anishsane 2014-09-26 12:29:50
@anishsane为什么不把它作为答案发布? – 2014-09-26 12:32:28