shell 脚本匹配一行然后替换整行(全局替换)

发布时间:2023-10-21 16:30

Backgroud

grepsedawk俗称Linux三剑客
grep常用于字符串搜索功能
sed常用于以行为单位对文本进行处理
awk是更为细粒度的处理,可以指定分隔符将一行(一条记录)划分为多个字段,然后以字段为单位处理文本,几乎可以实现grepsed所能实现的所有功能

实例

  • 有一个文件 logicaltool.sh,我们要替换其中的一行,如下
server_num= ps -ef | grep logical_tool | wc -l
  • 整行替换为
server_num= ps -ef | grep logical_tool | grep -v grep | grep -v logicaltool.sh | grep -v vi | grep -v tail | wc -l
  • 替换脚本 replace.sh
replacement=\"server_num= ps -ef | grep logical_tool | grep -v grep | grep -v logicaltool.sh | grep -v vi | grep -v tail | wc -l\"
sed -i \"/^server_num=*/c$replacement\" /home/logicaltool.sh

实测没有问题

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号