Wildcards

萬用字元:如何排除字元串?(不含)

  • December 28, 2020

我今天在練習萬用字元的使用.. 很有趣。

完全符合我預期的最複雜的事情是:

ls [![:digit:]]*[a-z][0-9][0-9][0-9][aA-zZ]*[![:digit:]]

但我實際上並沒有設法排除一個字元串。

如何僅列出不包含“test”的文件?

這裡有一些我已經嘗試過的例子:

ls *!("test")*
ls !("test")
ls !=*"test"*
ls !(*"test"*)
ls *^test*
ls *(^test)*
ls (^test)*
ls !test*
ls !*test*
ls *!test*
ls !{test}
ls !*{test}*
ls *!{test}*

在 Bash 中:

$ shopt -s extglob
$ touch a b c test
$ ls !(*test*)
a  b  c

或者,您可以使用find以下命令:

find -type f ! -name '*test*'

引用自:https://unix.stackexchange.com/questions/626521