ls
コマンドを使用して特定のファイルを見つけようとします。
- 「ボール」という単語の前に4つの文字があります。
- 最後の単語「ボール」が必要です。
使ってみましたが、ls *ball
「ball」という単語の前に4つ以上の単語があることがわかりました。 4文字以上の文字で「ボール」の前にある単語を無視する特定のコマンドはありますか?
答え1
合格すると手紙、あなたは考慮されるすべてのキャラクターを意味しますアルファベット順にそのロケール(通常、文字セットがサポートするすべてのアルファベットを意味します)では、次のものを使用できます。
ls -d -- [[:alpha:]][[:alpha:]][[:alpha:]][[:alpha:]]ball
または、zsh
対応するextendedglob
オプションを使用します。
ls -d -- [[:alpha:]](#c4)ball
または次のようにksh93
:
ls -d -- {4}([[:alpha:]])ball
シェルはこれらのパターンを拡張してls
提供された引数のみをリストし、それをls -d --
置き換えることもできますprintf '%s\n'
。
答え2
?
単一文字を一致させるために使用されます。
ls ????ball
一般ファイルにのみ興味がある場合:
for i in ????ball; do [ -f "$i" ] && echo "$i"; done