Linux 命令
sed
和grep
命令结合可以对文件夹下的所有特定字符串进行快速替换,本文记录方法。
cd etc
grep -rn "查找的内容" ./
grep -rn "cdn.jsdelivr.net/gh/zywvvd/HexoImages" ./
->
$ grep -rn "cdn.jsdelivr.net/gh/zywvvd/HexoImages" ./
./notes/coding/dataset/mongodb/MongoDB.md:120:
./notes/coding/doc/design_document/design_document.md:80:
./notes/coding/doc/design_document/design_document.md:82:
./notes/coding/doc/design_document/design_document.md:88:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:59:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:61:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:63:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:65:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:71:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:73:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:79:
./notes/coding/halcon/halcon-20-11-install/halcon-20-11-install.md:108:
./notes/coding/internet/ddns/ddns.md:23:
...
cd etc
sed -i "s/查找的内容/替换后的内容/g" `grep -rl "查找的内容" ./`
cdn.jsdelivr.net/gh/zywvvd/HexoImages
字符串替换为 cdn.jsdelivr.net/gh/zywvvd/HexoFiles
字符 /
需要用 \
字符进行转义sed -i "s/cdn.jsdelivr.net\/gh\/zywvvd\/HexoImages/gitee.com\/zywvvd\/HexoImages\/raw\/main/g" `grep -rl "cdn.jsdelivr.net\/gh\/zywvvd\/HexoImages" ./`
sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" /任意文件夹`