如何使用grep和rm删除文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用grep和rm删除文件?相关的知识,希望对你有一定的参考价值。
grep -n magenta *| rm *
grep: a.txt
:没有这样的文件或目录
grep: b
:没有这样的文件或目录
上面的命令删除目录中存在的除。,..之外的所有文件。它应该只删除那些包含“magenta”一词的文件
此外,尝试grep magenta * -exec rm '{}' ;
但没有运气。任何的想法?
答案
使用xargs
:
grep -l --null magenta ./* | xargs -0 rm
xargs的目的是在stdin上获取输入并将其放在其参数的命令行上。
选项的作用如下:
-l
选项告诉grep不要打印匹配的文本,而只是打印包含匹配文本的文件的名称。--null
选项告诉grep将文件名与NUL字符分开。这样可以安全地处理文件名的所有庄园。- xazgs的
-0
选项将其输入视为NUL分隔。
另一答案
grep -lr magenta . | xargs -0 rm -f --
-l
打印与搜索模式匹配的文件的文件名。-r
对给定目录magenta
中的模式.
执行递归搜索。如果这不起作用,请尝试-R
。 (即,作为多个名称而不是一个)。xargs -0
将文件名从grep
提供给rm -f
--
经常被遗忘,但标记选项的结尾并允许删除名称以-
开头的文件非常重要。
如果您想查看哪些文件即将被删除,只需删除| xargs -0 rm -f --
部分即可。
以上是关于如何使用grep和rm删除文件?的主要内容,如果未能解决你的问题,请参考以下文章