Linux - 查找不包含特定字符的文件

时间:2012-09-15 14:46:28

标签: linux

我了解使用[^a]*之类的内容会输出所有不以"a"开头的文件。

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

我有

 echo [^abc]?????*

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

1 个答案:

答案 0 :(得分: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"`