zsh匹配不包含破折号的文件

时间:2016-06-02 21:21:40

标签: zsh

我的文件列表如下:

001file.jpg
003file.jpg
001-800x600-sq.jpg
001-800x600.jpg
002-800x600-sq.jpg
002-800x600.jpg
003-800x600-sq.jpg
003-800x600.jpg
004-800x531-sq.jpg
004-800x531.jpg
005-800x531-sq.jpg
005-800x531.jpg
006-800x531-sq.jpg
006-800x531.jpg
007-800x531-sq.jpg
007-800x531.jpg
008-800x1067-sq.jpg
008-800x1067.jpg
009-800x1067-sq.jpg
009-800x1067.jpg
010-800x533-sq.jpg
010-800x533.jpg
011-800x1200-sq.jpg
011-800x1200.jpg
012-800x533-sq.jpg
012-800x533.jpg
013-800x600-sq.jpg
013-800x600.jpg
014-800x1067-sq.jpg
014-800x1067.jpg
015-800x533-sq.jpg
015-800x533.jpg
016-800x533-sq.jpg
016-800x533.jpg

在ZSH中,我想列出所有以任意数字开头的文件,不包含文件名中的破折号,所以我试过:

print -l <->[^-]*.jpg

没有成功。这种模式有什么问题!?

1 个答案:

答案 0 :(得分:2)

我认为,这与<->的文档警告的情况类似:

  

使用与此表单图案相邻的其他通配符时要小心;例如,&lt; 0-9&gt; *实际上将匹配字符串开头处的任何数字,因为'&lt; 0-9&gt;&#39;将匹配第一个                 数字和'*&#39;将匹配任何其他人。这对于粗心大意来说是一个陷阱,但实际上是不可避免的                 最长可能匹配总是成功的规则的结果。表达如                 `&LT; 0-9&GT; [^ [:位:]] *&#39;可以改为使用。

[^-]中,*匹配第一个数字,然后print -l <->[^[:digit:]-]*.jpg 匹配第二个数字,[root@localhost ~]# ls -lrtha total 318M -rw-r--r--. 1 root root 129 Dec 28 2013 .tcshrc -rw-r--r--. 1 root root 100 Dec 28 2013 .cshrc -rw-r--r--. 1 root root 176 Dec 28 2013 .bashrc -rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile -rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout -rw-------. 1 root root 1.2K May 27 13:56 anaconda-ks.cfg drwxr-xr-x. 3 root root 17 May 27 14:07 .cache drwxr-xr-x. 3 root root 17 May 27 14:07 .config dr-xr-xr-x. 17 root root 4.0K May 31 08:15 .. drwxr-----. 3 root root 18 May 31 08:25 .pki -rw-------. 1 root root 1.9K May 31 08:46 .viminfo drwx------. 2 root root 28 May 31 09:09 .ssh -rw-r--r--. 1 root root 317M May 31 09:13 se_docker.tgz -rw-r--r--. 1 root root 1.2M May 31 09:13 dpdk_klms.tar.gz dr-xr-x---. 6 root root 4.0K May 31 09:14 . -rw-r--r--. 1 root root 1.1K May 31 09:14 avise.service -rw-------. 1 root root 3.4K Jun 1 09:14 .bash_history [root@localhost ~]# ls -lrtha .ssh/ total 8.0K -rw-r--r--. 1 root root 399 May 31 09:09 authorized_keys drwx------. 2 root root 28 May 31 09:09 . dr-xr-x---. 6 root root 4.0K May 31 09:14 .. [root@localhost ~]# pwd /root 匹配其他所有内容。

改为使用

{{1}}