忽略搜索结果中的文件夹及其文件

时间:2013-11-25 18:19:13

标签: linux bash shell

我有一个特殊要求,我必须使用单独的命令从Linux中的搜索结果中过滤掉所有文件夹及其文件

示例: 我有以下文件夹,它们都有一个名为 test

的文件
/testfolder/f1
/testfolder/f1_0VT0_hc1
/testfolder/f1_0VT0_hc2

例如,如果我运行ls testfolder/*,初始结果将是:

/testfolder/f1:
test

/testfolder/f1_0VT0_hc1:
test

/testfolder/f1_0VT0_hc2:
test

我需要输入另一个命令(例如grep)来接收该结果,并过滤掉所有包含 _0VT0 _ 及其文件的目录!

我可以使用以下命令忽略这些目录:

ls testfolder/* | grep -R --exclude-from='.*_0VT0_.*'

但我仍然有文件!

问题:如何修改我的grep命令或用什么命令来忽略文件夹及其中的文件!

澄清我将获得lsfind命令,我需要另一个命令在其后执行,以过滤掉这些文件夹和他们的文件。所以我可以在批处理文件中管道或执行此操作。

1 个答案:

答案 0 :(得分:2)

使用-prune选项find

find * -name '*_0VT0_*' -prune -o -print

您可以将此作为普通命令替换的另一个命令的一部分使用:

ls -d $(find * -name '*_0VT0_*' -prune -o -print)