cha*_*aos 14
只是:
shopt -s extglob
ls a!(*3*)
Run Code Online (Sandbox Code Playgroud)
shopt -s extglob
激活扩展的通配。a
匹配起始 a
!()
否定()
...
*3*
这是3
什么以及它之前或之后的任何东西。$ touch 1 2 3 a1 a2 a3 b1 b2 b3 aa1 aa2 aa3 a2a a3a
$ ls a!(*3*)
a1 a2 a2a aa1 aa2
Run Code Online (Sandbox Code Playgroud)
现有答案很好地说明了使用 globs 做到这一点的最佳方法;我将包括它,因为在大多数情况下,find
如果您想进行脚本编写或进一步处理,这是一个更好的选择:
$ find . -maxdepth 1 -name 'a*' -not -name '*3*'
./a1
./a2
Run Code Online (Sandbox Code Playgroud)
您可以将答案提供xargs
给简单的操作,或者将答案提供给while read
更复杂的事情的循环。
小智 3
一个简单的方法是
a*
3
UNIX 命令是
ls -1 a* | grep -v 3
Run Code Online (Sandbox Code Playgroud)
ls -1
每行显示一个文件。
grep
通常查找与模式匹配的行,但-v
这种行为是相反的,即 grep 查找与该模式不匹配的行。