如果我有以下文件
aaa-a1
aaa-a2
c
d
eee-e1
那么,是否可以编写一个ls
的正则表达式,列出除aaa*
和eee*
之外的所有文件?
如果它是JavaScript,我会写下
^/(?!aaa|eee)([a-z0-9]+)$
但在Bash中,ls ^/(?!aaa|eee)([a-z0-9]+)$
不是有效的正则表达式.
如果我有以下文件
aaa-a1
aaa-a2
c
d
eee-e1
那么,是否可以编写一个ls
的正则表达式,列出除aaa*
和eee*
之外的所有文件?
如果它是JavaScript,我会写下
^/(?!aaa|eee)([a-z0-9]+)$
但在Bash中,ls ^/(?!aaa|eee)([a-z0-9]+)$
不是有效的正则表达式.
您可以在bash中使用扩展GLOB模式来实现这一点,如下所示:
shopt -s extglob
ls !(@(aaa|eee)-*)
c d
这里:
shopt -s extglob
启用扩展全局!
是否定的@(...|...)
Select 其中一个备选方案