Linux批量查找并替换文件夹下所有文件的内容
经常要使用到 Linux的批量查找与替换,这里为大家介绍使用 sed 命令和 grep 命令的结合来实现查找文件中的内容并替换。
语法格式:
sed -i "s/原字符串/新字符串/g" `grep -rl 原字符串 所在目录`
实例:
1.实现批量查找当前目录下包含 baidu 字符串的所有文件,例如:
grep -rn "baidu" ./
2.实现批量查找并替换当前文件夹下的包含 baidu.com 字符串的所有文件,并将其替换成 qq.com。
sed -i "s/baidu.com/qq.com/g" `grep -rl "baidu.com" ./`
3.实现批量查找并替换/data文件夹下的包含 baidu.com 字符串的所有文件,并将其替换成 qq.com。
sed -i "s/baidu.com/qq.com/g" `grep -rl "baidu.com" /data/`
使用命令时注意命令与参数之间空格的存在!
4.更复杂的实例,批量替换网址 https://www.baidu.com 为 https://www.qq.com/hb
sed -i "s/https://www.baidu.com/https://www.qq.com/hb/g" `grep -rl "https://www.baidu.com" ./`