は、私は小さな文字で終わるすべてのファイルを一覧表示するためのコマンドは何なリンゴなどのファイル、BAT、昏睡、ABA、ABC、abc03 .....など小文字で終わるすべてのファイルをリストするコマンドは何ですか?
も の「n」の数持っていますが、仮定します'a'と 'c'ではない? または任意の特定の文字
は、私は小さな文字で終わるすべてのファイルを一覧表示するためのコマンドは何なリンゴなどのファイル、BAT、昏睡、ABA、ABC、abc03 .....など小文字で終わるすべてのファイルをリストするコマンドは何ですか?
も の「n」の数持っていますが、仮定します'a'と 'c'ではない? または任意の特定の文字
あなたが正規表現でのlsとgrepの組み合わせを使用することができます。bashで
ls | grep -e "[bd-z]$"
を:
$ LC_ALL=C
$ ls
bar BAT cab foo ieee2000 MAC moc test zac zara ZOO
$ ls *[a-z]
bar cab foo moc test zac zara
$ ls *[bd-z]
bar cab foo test
$ ls *[^cC]
bar BAT cab foo ieee2000 test zara ZOO
$ ls *[^bc]
bar BAT foo ieee2000 MAC test zara ZOO
これらはあなたがまた、ループでそれらを使用することができますshell expansionsあるので、比較的簡単に。
注LC_ALL=C
設定 - あなたは英語以外のロケールを使用している場合、それは正しい結果を生成するために必要となる場合があります。
$ echo $LC_COLLATE
en_US.UTF-8
$ ls *[a-z]
bar BAT cab foo MAC moc test zac zara ZOO
$ LC_COLLATE=C
$ ls *[a-z]
bar cab foo moc test zac zara
あなたの代わりに、より具体的なLC_COLLATE
変数を設定することができ、上記のサンプルで見られるようにLC_ALL
です。
EDIT:ところで
は、少なくとも私のシステム(MandrivaのLinuxの2010.1)に、ロケールもgrep
影響:私はないと思う
$ LC_COLLATE=en_US.UTF-8
$ echo A | grep '[a-z]'
A
$ LC_COLLATE=C
$ echo A | grep '[a-z]'
$
任意のロケール(まだ使用中) '* [bd-z] 'は異なってマッチします。確かにUTF-8ロケールではありません。 – ephemient
@ephemient:例の私の編集を参照してください – thkala
まあ、そうです。 'fnmatch'は照合を範囲に適用しますが、' [x] 'は単一の文字ではありません。それはバグのようです。 – ephemient