2017-08-30 60 views
0

我想在我的桌面上的多個HTML文件中使用編碼(%7C)來批量替換管道。我嘗試了以下命令,但沒有取得任何成功。任何幫助,將不勝感激。使用Perl替換OSX終端上的管道

cd /Users/me/Desktop/sample_dir 
perl -pi -e 's!Abel|Source!Abel%7CSource!g;' *.html 
perl -pi -e 'sAbel|\/Source!Abel%7CSource!g;' *.html 
perl -pi -e 'sAbel|\Source!Abel%7CSource!g;' *.html 

回答

3

管道字符是在正則表達式(其表示「或」)的特殊符號,所以它需要與\轉義。

perl -pi -e 's!Abel\|Source!Abel%7CSource!g' *.html 
+0

對不起,但此命令不起作用,無論是在桌面文件夾中的HTML文件和一些子文件夾中。 – laurent

+0

你必須說明它是如何不起作用的... –

+0

我的桌面上有一個名爲sample_dir的文件夾。在這個文件夾中,我有HTML文件和子文件夾也包含HTML文件。我在終端上使用了cd/Users/me/Desktop/sample_dir,然後粘貼@davecross答案,但沒有任何文件(文件夾和子文件夾內的html)被更改。 – laurent