我在一個目錄中有幾個文件,其中我在兩個分隔符之間有一段文本。替換終端中所有文件中的多行字符串
Text to keep
//###==###
Text to remove
//###==###
Text to keep
廣泛的搜索後,我發現下面的Mac OS X的終端命令,與我可以刪除分隔自己。
perl -pi -w -e 's|//###==###||g' `find . -type f`
不過,我需要一個正則表達式,它不僅能去除分離自己的東西,但也什麼之間在不在。就像這樣,雖然這條線沒有任何作用。
perl -pi -w -e 's|//###==###(.*)//###==###||g' `find . -type f`
編輯時,重複標誌
我看到類似的東西here使用標範圍操作,但我不能讓它爲我工作。失敗的嘗試包括:
perl -pi -w -e 's|//###==###..//###==###||g' `find . -type f`
perl -pi -w -e 's|//###==###(..)//###==###||g' `find . -type f`
perl -pi -w -e 's|//###==###[..]//###==###||g' `find . -type f`
SOLUTION
下面耶的幫助,下面oneliner將不正是我想要的:
$ perl -0777 -p -i -e 's/(^\s*^\/\/###==###.*?\/\/###==###\s*)//gms' `find . -type f -name "index.php"`
http://stackoverflow.com/a/2147588/223226 –
你是不是收到此錯誤:'文件名,目錄名稱或卷標語法不正確。 – serenesat
'perl -ne'print unless m | // ### == ### | ... m | // ### == ### |'' – RobEarl