递归删除包含特定字符串的名为NET_Connections *的所有文件

时间:2014-11-20 15:49:29

标签: linux file shell

我需要找到一种方法来删除文件夹中的所有文件及其文件名为“NET_Connections *”的子文件夹,但只能删除文件内容中具有特定字符串的文件(例如“TCP_Connections”)。

目前,我有这样的事情:

find . -type f -name "NET_Connections*" -exec rm -f {} \;

如何查看find . -type f -name "NET_Connections*"-exec rm -f {} \;

之间的内容

非常感谢!

Grtz

威廉

1 个答案:

答案 0 :(得分:1)

试试这个:

\rm -f $(find . -type f -name "NET_Connections*" | xargs grep -l TCP_Connections | sed -r 's/\.[[:alnum:]]+$/*/')
  • find命令 - 将找到名称类似于NET_Connections
  • 的文件
  • grep -l - 将仅打​​印包含TCP_Connections的文件名。
  • \ rm -f - 强制删除grep找到的文件。
  • sed - 用*替换扩展名,以便删除包含rrd和xml的所有文件,如NET_Connections *。

*您也可以执行-exec grep而不是管道。