2012-01-20 152 views
0

如何使用GNU sed將文本替換爲其他文本?我被黑了,只是想看看我是否可以刪除一些放入我的php文件中的代碼。原文爲sed文本替換

eval(base64_decode('blah')); 

各種各樣。所有這些都是相同的,我只想在所有文件中找到並替換它們。我已經嘗試了一些命令,但是它們要麼不必要地改變和損壞文件中的文本,要麼完全不啓動。

+0

可能重複的[sed命令文本替換](http://stackoverflow.com/questions/8947841/sed-command-text-replace) – shellter

+0

這個討論失敗了,這一個工作了,我投票刪除另一個。 – notam2774

回答

2
sed -i 's/text/other text/g' filename 

sed -i "s/eval(base64_decode('blah'))/huh/g" filename在你的情況)。

+0

謝謝,我試圖逃避一些事情。我輸入了'sed -i's/eval \(base64_decode \(\「DQplyI0KfQ == \」\)\)\; // g'filename/dir/*'並返回sed:-e表達式#1,字符1195:未知選項[*反向*] s'' – notam2774

+0

我不認爲在這個特定的字符串,你需要任何逃脫。 –

+0

好的,沒有轉義,仍然返回sed:-e表達式#1,字符1188:未知選項轉換爲's' – notam2774

1

find . -name \*.php -exec sed -i "s/text/other/g" {} \;

您可能希望做一個預演,並留下關閉-i,只是將其引導到一個文件作爲測試第一。

在Mac上-i通常不起作用。