次のようなファイルを含むディレクトリがあると仮定します。
$ ls
file0001.txt file0002.txt file0003.txt file0004.txt file0005.txt someotherfile.txt
次のコマンドを実行するとします。
$ cat file0001.txt file0002.txt file0003.txt file0004.txt file0005.txt
次のようにbashショートカットを使用してこれを実現し、ファイル名を自動入力できます:cat file000
ESC*
いくつかの正規表現(正規表現)に従ってのみ自動入力するのと同様の方法でショートカットを使用することは可能でしょうか?例えば: cat file000[1-3]
ESC* 取得するため:
$ cat file0001.txt file0002.txt file0003.txt
編集:この例でより意味をなすために上記で使用する必要があった正規表現:file000[1-3].txt
またはfile000[1-3]*
明確にするために、私の質問は、正規表現でbashを自動入力する方法についてです。また、bashスクリプトまたは正規表現を使用してcat
/for
ステートメントを使用していくつかのファイルをwhile
する方法ではありません。
あなたが探している機能はそこにあります。例に*
がありません。タイプcat file000[1-3]*
ESC* そしてそれはうまくいくはずです。 readline関数insert-completions
(これは ESC*)どのファイルとも一致しない場合、globパターンは展開されません。そして最後の*
がないと、ファイルと一致しません。
これについては、 manページ のセクション「EXPANSION」サブセクション「PathnameExpansion」で読むことができます。
中かっこは必要なものです
cat file000{1,2,3}.txt
これは次のように変換されます。
cat file0001.txt file0002.txt file0003.txt