我在一个文件夹中有一堆文件:
foo_1 foo_2 foo_3 bar_1 bar_2 buzz_1 ...
我想查找所有不以给定前缀开头的文件,并将列表保存到文本文件中。 下面是一个具有给定前缀的文件的例子:
find bar_* > Positives.txt
这应该可以在任何shell中做到这一点
ls | grep -v '^prefix'
-v选项反转grep的搜索逻辑,使其筛选出所有匹配项。 使用grep而不是find可以使用强大的正则表达式而不是有限的glob模式。
你想找到不是以bar_*
开头的文件名?
递归:
find ! -name 'bar_*' > Negatives.txt
顶层目录:
find -maxdepth 1 ! -name 'bar_*' > Negatives.txt
如果你还在做子目录:
find . ! -name "bar_*"
使用bash和通配符:ls [!bar _] *。 有一个警告:信件的顺序并不重要,所以rab_something.txt不会被列出。