正则表达式 – 使用sed忽略注释(#),但保持行不变

前端之家收集整理的这篇文章主要介绍了正则表达式 – 使用sed忽略注释(#),但保持行不变前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个配置文件,我想基本上编辑未注释的行,但不是注释的行.我正在使用sed.

例如,我有一个名为file.txt的文件

test
# test
# test
test

我想用“TEST”替换“test”,但不要触摸已注释的行.最终输出显示

TEST
# test
# test
TEST
sed '/^#/!s/test/TEST/g' /path/to/infile

产量

$sed '/^#/!s/test/TEST/g' infile
TEST
# test
# test
TEST

*注意:如果您对评论的唯一要求是第一个非空格字符是#,那么您可以使用:

sed '/^[[:space:]]*#/!s/test/TEST/g' /path/to/infile

产量

$sed '/^[[:space:]]*#/!s/test/TEST/g' infile
TEST
# test
 # test
TEST

猜你在找的正则表达式相关文章