design-patterns - Bash - 如何查找和删除包含给定字符串的所有文件?

标签 design-patterns grep find xargs

假设给定目录中有许多文件具有各种文件扩展名或根本没有扩展名,只有文件名。其中一些文件包含字符串“\/for\/endetta”。

如何找到并删除该目录中与此模式匹配的所有文件?我可以通过以下方式做到这一点:

find -type f -exec egrep -Il '\/for\/endetta' {} \;|xargs rm -fv
  1. 但是没有 xargs 可以做到吗?

  2. 以及如何正确转义\s 和/s 等。

最佳答案

BrowSlow 的回答(在评论中)是正确的,除了/for/endetta 的转义。 试试这个命令:

find . -type f -exec grep -q '\\/for\\/endetta' {} \; -delete 

如果 grep 的退出状态为真,则执行以下操作。将 -delete 替换为 -print 以查看将删除哪些文件。

关于design-patterns - Bash - 如何查找和删除包含给定字符串的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25512928/

相关文章:

c++ - Main 函数与状态之间的通信

java - 工厂模式与工厂方法模式

java - 使用java上传文件

java - 使用 NULL 对象模式消除 NULL

grep - 使用 grep 确定字数(在一行中有多个单词的情况下)

linux find 命令——需要在不重定向 stderr 的情况下过滤 "no such file or directory"消息

emacs - emacs中grep-find的默认字符串

bash - 带引号的grep

ruby-on-rails - 使用 find_by_id(comment.user_id).name 检索用户名不起作用

c#如何在字节数组中连续查找字节数组?