我有一个特殊的要求,我必须使用单独的命令从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命令,或者应该使用什么命令来忽略文件夹和其中的文件!
澄清我将收到一个ls
或find
命令,我需要另一个命令在它们之后执行,该命令将过滤掉这些文件夹及其文件。所以我可以在批处理文件中管道或执行某些操作。
将-prune
选项用于find
。
find * -name '*_0VT0_*' -prune -o -print
您可以将其作为另一个具有普通命令替换的命令的一部分:
ls -d $(find * -name '*_0VT0_*' -prune -o -print)