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