2013-04-02 58 views
0

如何我可以做一個字符串匹配對,例如:使用SED發現並在多個文件中刪除遞歸

<meta name="keywords" content=" 

然後每找到一個匹配時間刪除整條生產線?

我正在爲當前目錄和下面的所有文件執行此操作。

我也是新來的sed。

+0

您沒有使用'sed'來解析HTML,是嗎? – choroba

+0

我使用它來查找跨HTML文件的那一行並將其刪除,所以我猜是的。那不好嗎? – Barney

+2

請參閱http://stackoverflow.com/a/1732454/1030675 – choroba

回答

2

回答這個問題:「我如何對所有文件遞歸執行x?」,答案是使用find。要使用sed刪除一行,您可以使用不可移植的-i,或者直接編寫腳本來重定向流。例如:

find . -exec sh -c 'f=/tmp/t.$$; 
    sed "/<meta name=\"keywords\" content=\"/d" $0 > $f; mv $f $0' {} \; 
5

試試這個命令:

find . -type f -exec sed -i '/foobar/d' {} \; 

更改foobar你怎麼尋找。