How to find a line of code and delete that line from all files in a certain /directory only, using Linux CLI
所以我用这个查找/directory中包含代码"test"的所有文件
现在我想一次删除在/directory中所有文件中找到的代码。
只是在其中检测到的每个文件的代码行。
更新***
我想删除注入代码
所以这是做了,但不起作用。未显示错误消息。它只接受命令。
如果您只想删除文件的
1 | grep -l -R 'test' /directory | xargs -I {} sed -i.bak 's/test//g' {} |
它将以零替换测试模式,并在执行操作时备份文件!你永远不知道——)
如果您确定可以删除包含
1 | grep -l -R 'test' /directory | xargs -I {} sed -i.bak '/test/d' {} |
如果不再需要备份文件,可以使用以下命令查找备份文件并将其删除:
1 | find /directory -type f -name '*.bak' -exec rm -i {} \; |
如果在删除文件时不需要确认,可以在
应将文件名通过管道发送到SED:
1 | grep -l -R"test" /directory | xargs -I {} sed -i '/test/d' {} |
在哪里?
- -L表示grep只打印文件名
- /test/d是用来删除与测试模式匹配的行的sed命令
- -我告诉SED将结果写入同一个文件,否则只会将鞋输出