我知道使用类似[^a]*
的东西会输出所有不以"a"
.
如果我想回显包含至少 5 个不以开头的字符"abc"
(但可以包含"abc"
在文件名中间)的文件,我应该怎么做?
我有
echo [^abc]?????*
但输出也删除了类似的文件"123abc"
,我不太明白。
我知道使用类似[^a]*
的东西会输出所有不以"a"
.
如果我想回显包含至少 5 个不以开头的字符"abc"
(但可以包含"abc"
在文件名中间)的文件,我应该怎么做?
我有
echo [^abc]?????*
但输出也删除了类似的文件"123abc"
,我不太明白。
您没有指出您的问题适用于哪个操作系统,但确定 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"`