2011-03-02 101 views
2

如果我想用條代替foo的所有情況,我只需執行此操作。perl -pi -e語法與|或<

perl -pi -e 's/foo/bar/gi' /home/smith/myfile.txt 

如果我只想替換| foo |用| bar |?

相關問題如果我只想用> <替換> foo <?

回答

3

你必須逃避|性格:

perl -pi -e 's/\|foo\|/\|bar\|/gi' /home/smith/myfile.txt

+1

替代部分('bar'周圍)中的黑色條是多餘的。 – daxim 2011-03-02 22:01:19

1

您只需使用正確的引用。用'引號你可以安全地做你想做的事。除了與正則表達式字符相關的東西,比如'|'。所以它會變成這樣:

 
perl -pi -e 's/\|foo\|/|bar|/gi' /home/smith/myfile.txt 

的> FOO <例子是比較容易,因爲他們不是正則表達式的字符。

3

嘗試:

perl-pi -e 's/\Q|foo|\E/|bar|gi' /home/smith/myfile.txt 

perldoc perlre和搜索/Escape sequences/