经常要使用到 Linux 的批量查找与替换,这里我们为大家介绍使用 sed 命令来实现查找文件中的内容并替换。

语法格式

1
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`

实例

以下我们实现在当前目录下查找包含 baidu 的字符串,并将字符串 baidu 替换为 runoob,执行命令:

1
sed -i "s/baidu/runoob/g" `grep "baidu" -rl ./`

接下来使用一个更复杂实例,批量替换网址 libs.baidu.com 为 cdn.static.runoob.com:

1
sed -i "s/https:\/\/libs.baidu.com/https:\/\/cdn.static.runoob.com\/libs/g" `grep -rl "libs.baidu.com" ./`

修改 href=’http://www.hanweb.com‘ style=’display:none’>Produced By 大汉网络 大汉版通发布系统 这个标签为 href=’http://yjglj.beijing.gov.cn‘ style=’display:none’>北京市应急管理局

1
sed -i "s/<a href='http:\/\/www.hanweb.com' style='display:none'>Produced By 大汉网络 大汉版通发布系统<\/a>/<a href='http:\/\/yjglj.beijing.gov.cn' style='display:none'>北京市应急管理局<\/a>/g" `grep -rl "<a href='http:\/\/www.hanweb.com' style='display:none'>Produced By 大汉网络 大汉版通发布系统<\/a>" ./`