![ワイルドカード:文字列を除外する方法は? (含まれていません) [重複]](https://linux33.com/image/185548/%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89%EF%BC%9A%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E9%99%A4%E5%A4%96%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%EF%BC%9F%20(%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%9B%E3%82%93)%20%5B%E9%87%8D%E8%A4%87%5D.png)
使って練習しています。ワイルドカード今日..面白いです。
私が期待したように正確に機能した最も複雑なものは次のとおりです。
ls [![:digit:]]*[a-z][0-9][0-9][0-9][aA-zZ]*[![:digit:]]
ただし、実際には文字列を除外することはできません。
ファイルのみをリストするにはどうすればよいですか?含まれていません「テスト」?
以下は私が試したいくつかの例です。
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}*
答え1
大きな打撃を受けた場合:
$ shopt -s extglob
$ touch a b c test
$ ls !(*test*)
a b c
答え2
または、find
次のコマンドを使用できます。
find -type f ! -name '*test*'