Skip to content

Sed 命令

原文

name=sanzhang
username=lisi
password=123456
#age=18

1.每行行头增加字符

命令

shell
# 在每行行头增加【HEAD】  -i 在源文件上修改,没有-i则只会输出控制台
# abc  => HEADabc
sed 's/^/HEAD&/g' /opt/test.conf  -i

2.每行行尾增加字符

命令

shell
# 在每行行尾增加【TAIL】 -i 在源文件上修改,没有-i则只会输出控制台
# abc  => abcTAIL
sed 's/$/&TAIL/g' /opt/test.conf  -i

3.匹配文字替换

命令

shell
# 匹配每行的【a】,替换为【A】  -i 在源文件上修改,没有-i则只会输出控制台
#替换所有的a
sed 's/a/A/g' /opt/test.conf  -i
#只替换每行第一个a
sed 's/a/A/' /opt/test.conf  -i
# 将name=**配置项进行注释
sed "s/^name=.*/#&/g" /opt/test.conf  -i

对某项进行注释

命令

shell
# 匹配每行的【a】,替换为【A】  -i 在源文件上修改,没有-i则只会输出控制台
# 将name=**配置项进行注释 => #name=**
sed "s/^name=.*/#&/" /opt/test.conf  -i

对某行后插入一行

shell
grep -q '^#name=' /opt/test.conf && sed -i '/^#name=.*/a\name=wangwu' /opt/test.conf || echo 'name=wangwu' >> /opt/test.conf

2.删除每行回车(^M)

命令

shell
# 在删除每行行尾回车(^M) -i 在源文件上修改,没有-i则只会输出控制台
sed 's/\r//' /opt/test.conf  -i

恢复测试原文

shell
cat  >/opt/test.conf <<EOF
name2=sanzhang
username=lisi
password=123456
#age=18
EOF