shell>sed (对文件的内容进行替换)

在生产环境中经常会遇到对配置文件的修改,那写成一个脚本,传个参数修改配置文件不就方便多了吗。
对一个文件的操作那我暂且分为增删改查了


写在前面

  • -i 这个参数很重要,若需要更改源文件,请配合-i参数使用。
  • 一开始对一个空文件进行操作,发现无法操作,写入一点内容就可以了。

sed -i '2a lalala' test.conf #在文件的第二行下面插入一行(lalala)

sed -i '$a hahahaha' test.conf #在文件的最后新增一行(hahaha)

sed -i '1i papapa' test.conf #在第一行前面插入一行(papapa)

sed -i '1d' test.conf #删除文件的第一行

sed -i '2,$d' test.conf #删除第二行到最后一行

s 后包含在斜杠中的文本是正则表达式,后面跟着的是需要替换的文本。可以通过 g 标志对行进行全局替换

sed -i 's/^hahaha/papapa/g' test.conf #将所有hahaha替换为papapa,g表示全局替换

sed -e '1,3d' -e 's/^hahah/papapa/g' test.conf #多重编辑

sed -i '/lalalala/c pupupupu' test.ini #修改包含有lalalalala的一行为pupupupu

sed -i '1,5y/abcd/ABCD' test.ini #将1到5行的小写abcd转换为大写的ABCD

  • 给sed命令传递参数

sed -i "/hahaha/c ${param}" test.ini #注意使用双引号,${}使用环境变量

参考文档
【CSDN----Shell 文件内容替换 sed用法】
【博客园----sed命令用法】
【CSDN—三剑客之Sed关于 p、a、d、w、i 、c 模式的干货】


  • sed正则表达式
    在这里插入图片描述
  • sed常用选项
    在这里插入图片描述
  • sed操作命令
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章