Есть ли способ использовать выражения регулярных выражений для автоматического заполнения имен файлов в bash?

Предполагая, что у меня есть каталог с файлами, как показано:

$ 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 с помощью регулярного выражения. И НЕ как я могу cat некоторые файлы вместе с помощью сценария bash или for операторов while использующих regex.

Функция, которую вы ищете, есть. Вам просто не хватает * в вашем примере. Введите cat file000[1-3]* ESC *, и он должен работать. Я думаю, что это так, потому что функция insert-completions функции readline (которая привязана к ESC * ) не будет расширять шаблон glob, если он не соответствует никаким файлам. И без последнего * он не соответствует файлам.

Вы можете прочитать об этом на странице руководства, подраздел «РАСШИРЕНИЕ» подсекции «Расширение пути».