在几个文本文件中插入相同的文本文件

时间:2014-01-08 22:58:01

标签: sed find

我想插入一个文本文件的内容,让我们在几个不同的文件中将其命名为Menu.incl。我知道如何在单个文件上执行此操作,使用sed命令并在目标文件中引入标记:

sed -e '/the Menu is Here/r Menu.incl' F.html > F_Menu.html

我想保留原始文件,以便将来可能演变Menu.incl文件。

我怎么能为html文件集合的每个成员做到这一点?我猜:用find命令?我尝试使用以下命令获得预期结果:

find . -name '*.html' -exec sed -e '/the Menu is Here/r Menu.incl' '{}' +

但我不知道如何在副本中保存每个修改过的.html内容,即不破坏原始的html文件

比你的帮助, Romuald

1 个答案:

答案 0 :(得分:1)

尝试使用流程替换

while read f; do
  d=$(dirname "$f")
  b=$(basename "$f")
  b="new.$b"
  sed -e '/the Menu is Here/ r Menu.incl' "$f" > "$d/$b"; 
done < <(find . -type f -iname "*.html" -print)