1

我知道使用类似[^a]*的东西会输出所有不以"a".

如果我想显包含至少 5 个不以开头的字符"abc"(但可以包含"abc"在文件名中间)的文件,我应该怎么做?

我有

 echo [^abc]?????*

但输出也删除了类似的文件"123abc",我不太明白。

4

1 回答 1

3

您没有指出您的问题适用于哪个操作系统,但确定 Mac OS X 或 Linux 上匹配文件集的一种方法是:

find . -maxdepth 1 -type f -name "?????*" | egrep -v "./abc"

请注意,这将仅列出当前目录中的文件。如果要在子目录中包含文件,则需要删除maxdepth参数。

另请注意,这些命令区分大小写。您需要使用-iname-i使它们不区分大小写。

编辑:

如果您确实需要使用echo命令,以下将起作用:

echo `find . -maxdepth 1 -type f -name "?????*" | egrep -v "./abc"`
于 2012-09-15T14:58:11.080 回答