TYPECHO WIKI
每一个作品都值得被记录

Shell命令批量替换掉文件中指定字符串

Typecho维基君开发日志 • 152次浏览 • 发布 2024-04-06 • 更新 2024-04-06

最近手里有几个域名到期了,这几个域名建立的网站生成的有大量永久静态缓存,如果要重新生成的话将浪费很大精力,而且文件太多,手动改总会有一些会忘记,于是写了一个简单的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所有文章均包含本声明。
厂商投放

【腾讯云】🎉五一云上盛惠!云服务器99元/月续费同价!

腾讯云五一劳动节海量产品 · 轻松上云!云服务器首年1.8折起,买1年送3个月!超值优惠,性能稳定,让您的云端之旅更加畅享。快来腾讯云选购吧!

广告
添加新评论 »