從 php 檔案中刪除長字串 - 使用 grep 和 sed?

從 php 檔案中刪除長字串 - 使用 grep 和 sed?

我在 Linux 伺服器上遇到了一些惡意軟體,並試圖從許多 php 檔案中刪除它。

我用 grep | 進行了無止盡的嘗試sed 和 grep | tr 甚至無法刪除一個簡單的文字字串,從而出現不同的錯誤。

嘗試時:

grep -l '@error' * | xargs -0 sed -i 's/error/nothing/g'   

我收到一條錯誤訊息:

無法閱讀檔案名稱.php

在 Mac 上使用終端機 - 也許是 OSX 語法問題?

我的最終任務是從所有檔案中刪除一長串程式碼 - 其中包括一些 $,!,?,<,>,\," 符號 - 我需要反斜線它們嗎?

答案1

您應該從備份或原始碼控制中恢復@墊建議這樣做,因為否則你不能 100% 確定你清理了所有東西。

您的命令的問題是-0的標誌xargs,因為這種方式xargs需要空終止參數,這不適用於 的輸出grep -l。只要刪除它就-0可以工作,只要檔案名稱中沒有空格。

grep -l '@error' * | xargs sed -i 's/error/nothing/g'

答案2

grep -l @error * | xargs sed -i s/error/test/g

將工作。

相關內容