2011-12-21 98 views
9
sed -i "/xxxxxxxxxxxx/r inc-sausage" git.html 
sed -i "/xxxxxxxxxxxx/d" git.html 

首先替換的模式我插入INC香腸的內容時XXXXXXXXXXXX發現替換/與文件內容

其次,我刪除XXXXXXXXXXXX

兩個命令做我想要什麼。但是,我怎樣才能將兩個sed命令組合到一個? 我試圖

sed -i "s/xxxxxxxxxxxx/r inc-sauasge" git.html 

回答

9

首先,你coould串聯兩個sed命令爲一行,並避免重複搜索字符串,像這樣:

sed -i -e "/xxxxxxxxxxxx/r inc-sausage" -e "//d" git.html 

另外,如果你想要,而不是刪除xxxxxxxxxxxx在其行其他的東西,你能做到這一點,而不是:

sed -i -e "/xxxxxxxxxxxx/r inc-sausage" -e "s///" git.html 
3

這可能會爲你工作:

sed -i '/xxxxxxxxxxxx/{r inc-sausage'$'\n''d}' git.html 

說明:

here爲什麼$'\n'是必要的。還要注意d命令必須是最後的,因爲它會刪除模式空間,然後立即開始下一個週期。

或爲GNU sed的:

sed -i '/xxxxxxxxxxxx/s|.*|cat inc-sausage|e' git.html