![](/img/trans.png)
[英]How to remove files from directory with certain extenions using command line in linux
[英]How to find a line of code and delete that line from all files in a certain /directory only, using Linux CLI
所以我用它來查找/目錄中包含代碼“test”的所有文件
grep -R “test” /directory
現在我想一次刪除/ directory中所有文件中找到的代碼。
只檢測它所檢測到的每個文件的代碼行。
更新***
我想刪除注入的代碼@require(dirname(__FILE__).'/php/malware.php');
所以這已經完成但它不起作用。 沒有顯示錯誤消息。 它只接受命令。
grep -l -R '@require(dirname(__FILE__).'/php/malware.php');' /directory | xargs -I {} sed -i.bak 's/@require(dirname(__FILE__).'/php/malware.php');//g' {}
如果要僅刪除文件的test
模式而不是刪除整行,則可以使用以下命令在大多數情況下會破壞代碼 :
grep -l -R 'test' /directory | xargs -I {} sed -i.bak 's/test//g' {}
它將全局替換測試模式,並在執行操作時備份文件! 你永遠都不會知道 :-)
如果您確定可以刪除包含test
模式的整行 ,則可以通過以下方式使用sed:
grep -l -R 'test' /directory | xargs -I {} sed -i.bak '/test/d' {}
您可以在查找備份文件后刪除它們,如果不再需要它們,請使用以下命令:
find /directory -type f -name '*.bak' -exec rm -i {} \;
如果在刪除文件時不需要確認,則可以刪除rm
后面的-i
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.