我正在寻找bash代码,将所有 .html 文件中的所有<title>XXX</title>
替换为<title>XXX - YYY $Date</title>
我想出的是,使用 sed 是:
sed -i "s/</title>/ - YYY 'date'/g" /home/mirror/*
然而,这并没有实现.html要求,我无法让它工作,我要么
sed: no imput files
或
-bash: s/</title>/ - YYY 'date'/g: No such file or directory
结构是:
/home/mirror/
├── images
├── archive
│ └── index.html
│ └── 2.html
├── index.html
├── 2.html
├── style.css
└── scripts.js
我该怎么做?
答案 0 :(得分:3)
您需要find
来递归目录:
find /home/mirror -name '*.html' -exec sed -i "s@</title>@ - YYY $Date</title>@g" {} +
注意我用“$ Date”替换了“'date'”,因为这就是你想要添加的内容。我还使用@
代替/
作为sed s
分隔符,以避免来自</title>
部分的干扰。