bash脚本-替换字符串
需要把md文件里的图片由.jpg或.png替换成.webp。由deepseek生成了一段脚本。
#!/bin/bash
# 设置目录路径
directory="/data/downloads/posts/"
# 设置要替换的字符串
search=".png"
replace=".webp"
# 转义特殊字符(将 / 替换为 \/)
escaped_search=$(echo "$search" | sed 's/\//\\\//g')
escaped_replace=$(echo "$replace" | sed 's/\//\\\//g')
# 遍历目录中的所有 .md 文件
find "$directory" -type f -name "*.md" | while read -r file; do
echo "Processing $file"
# 使用 sed 替换文件中的字符串
sed -i "s/$escaped_search/$escaped_replace/g" "$file"
done
echo "Replacement complete."
起初生成了windows下的批处理文件,但是处理完之后发现文件里出现了乱码。这段bash脚本就没有问题。应该是utf8和gbk编码的问题。