Text-Processing
如何在多個文件中添加一行
我有很多**.html**文件,我需要在每個文件的< head > 開始標記之後添加一個元標記。
我怎麼能這樣做?
是否
vim
適合該任務?
在
vim
中,您可以執行以下操作::%s/<head\b[^>]*>/& <meta foo="bar">/g
您也可以在 GNU 中執行此操作
sed
,這可能更合適:for file in *.html; do sed -i 's/<head\b[^>]*>/& <meta foo="bar">/g' "$file" done
請注意,
-i
破壞符號連結。
sed -i '/PATTERN/ a\ Line which you want to append' filename
對於這個例子
sed -i '/<HEAD>/a <meta>' test.txt <HEAD> <HEAD>
結果 :
<HEAD> <meta> </HEAD>
上面的命令將在字元串匹配後追加新行。但是,如果文件的輸入字元串為
<HEAD><TITLE></TITLE> </HEAD>
結果:
<HEAD><TITLE></TITLE> <meta> </HEAD> //which is wrong.
也許我們可以嘗試這種方法:
sed -i 's/<HEAD>/<HEAD><meta>/' filename