Shell命令批量替换掉文件中指定字符串
最近手里有几个域名到期了,这几个域名建立的网站生成的有大量永久静态缓存,如果要重新生成的话将浪费很大精力,而且文件太多,手动改总会有一些会忘记,于是写了一个简单的shell脚本来批量替换处理,这里记录一下:
#!/bin/bash
# 指定要搜索的目录
search_dir="/www/wwwroot"
# 指定要查找的字符串列表
search_strings=("字符串1" "字符串2" "字符串3")
# 指定要替换为的字符串
replace_string="要替换的字符串"
# 在指定目录下递归搜索包含指定字符串的文件
find "$search_dir" -type f -exec grep -l -e "${search_strings[0]}" {} + | while read -r file; do
# 输出找到的文件的绝对路径
echo "替换文件中的字符串: $file"
# 使用 sed 命令替换文件中的字符串
for search_string in "${search_strings[@]}"; do
sed -i "s/$search_string/$replace_string/g" "$file"
done
done
如果你今需要替换一个字符串,使用下面的脚本即可:
#!/bin/bash
# 指定要搜索的目录
search_dir="/www/wwwroot"
# 指定要查找的字符串
search_string="指定字符串"
# 指定要替换的字符串
replace_string="替换字符串"
# 在指定目录下递归搜索包含指定字符串的文件
find "$search_dir" -type f -exec grep -l "$search_string" {} + | while read -r file; do
# 输出找到的文件的绝对路径
echo "替换文件中的字符串: $file"
# 使用 sed 命令替换文件中的字符串
sed -i "s/$search_string/$replace_string/g" "$file"
done
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,Typecho.Wiki所有文章均包含本声明。