2014-01-08 57 views
0

我想插入一個文本文件的內容,我們將其稱爲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文件

比你您的幫助, 羅穆亞爾德

回答

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) 
+0

不錯,謝謝喲你是否有可能創建new.F.html而不是F.html.new? – user2997973

+0

@ user2997973:只需根據需要更改輸出重定向。 – Birei

+0

它不太明顯,因爲$ f包含相對路徑而不僅僅是html文件的名稱,所以當我重定向到「新$ f」而不是「$ f.new」時,我得到一條錯誤消息 - >> new./test.html – user2997973