「a」で始まり、後に1桁または2桁の数字が続くすべてのファイルを一覧表示するコマンドは何ですか?

「a」で始まり、後に1桁または2桁の数字が続くすべてのファイルを一覧表示するコマンドは何ですか?

「a」で始まり、後に1桁または2桁の数字が続くすべてのファイルを一覧表示するコマンドは何ですか? (出力にはa0、a1、a2、a3、a00、a01、a99...が表示されますが、a333、b12、art53...は表示されません。)

ベストアンサー1

zshシェルでは、

setopt EXTENDED_GLOB
printf '%s\n' a[[:digit:]](#c1,2)(.)

このパターンは、名前が始まり、後に1つまたは2つの数字が続くすべての一般的なa[[:digit:]](#c1,2)(.)ファイルと一致します。a最後に、1つまたは2つの数字に一致する一般的な(.)ファイル名のみを取得します。[[:digit:]](#c1,2)

shまたは等からbash

printf '%s\n' a[[:digit:]] a[[:digit:]][[:digit:]]

これは、anで始まり、1桁または2桁の数字を含むすべての名前を一覧表示しますa(1桁の名前には1つのパターンを使用し、2桁の名前には別のパターンを使用します)。ただし、通常のファイルの名前のみを取得できるか(ディレクトリ名などを取得することもできます)、一方または他のパターン(またはその両方)が一致しないかどうかはわかりません。どの名前を指定すると、パターンは拡張されていません(一致しないパターンを削除するにはshopt -s nullglobinを使用してください)。bash

非正規ファイルを消去するには、ループを使用します。

for name in a[[:digit:]] a[[:digit:]][[:digit:]]; do
    if [ -f "$name" ]; then
        printf '%s\n' "$name"
    fi
done

ここでは、-f各名前に対して明示的なテストを適用します。このテストは本物名前が一般ファイル(または一般ファイルへのシンボリックリンク)を参照している場合。テストが次の場合本物、名前を印刷します。

おすすめ記事