Answers:
在bash下,运行shopt -s extglob
(或将其放在中~/.bashrc
),然后可以使用其他模式,这些模式提供具有不寻常语法的正则表达式(从ksh继承)。当然,您也可以在ksh以及zsh之后的zsh中使用这些模式setopt ksh_glob
。
$ shopt -s extglob
$ ls /opt/somedir/@(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
在zsh中,您可以直接(foo|bar)
用作模式。
% ls /opt/somedir/(aa|bb|cc|doesnotexist)
/opt/somedir/aa /opt/somedir/bb /opt/somedir/cc
请注意,将使用完整路径调用该命令。如果要使用短路径调用该命令,则需要以某种方式更改目录,这(cd /opt/somedir && somecommand aa bb cc)
是迄今为止最简单的方法。
您可以使用进行过滤egrep
:
ls | egrep '(aa|bb|cc)'
查找所有文本文件:
ls | egrep '(aa|bb|cc).txt'