2文字(そのうちの1つはc)を含むファイル名をどのように表示しますか?

2文字(そのうちの1つはc)を含むファイル名をどのように表示しますか?

私はこれを試しましたが、うまくls [a-z][a-z]いかないようです。

ベストアンサー1

Bashを使用して、欠落している一致によってエラーが発生しないようにglob設定を設定します。

shopt -u failglob  # avoid failure report (and discarding the whole line).
shopt -s nullglob  # remove (erase) non-matching globs.
ls ?c c?

疑問符は、単一文字を表すグローバル文字です。 2 文字のファイル名が必要なので、そのうちの 1 つは、最初の文字cまたは最後の文字でなければなりません。

shopt -s dotglobというメッセージが表示されます.c

一致するファイルがない場合、これらのシェルオプションを設定するとすべてのパラメータが削除され、デフォルトですべてのエントリが一覧ls表示されます。

代わりにこれを使用してください:

shopt -s nullglob  ## drop any missing globs
set -- ?c c?       ## populate the $@ array with (any) matches
if [ $# -gt 0 ]    ## if there are some, list them
  ls -d "$@"
fi

おすすめ記事