Сопоставление каждого символа в комбинации символов плюс само значение комбинации в Bash

Другие ответы дали хороший ответ на вопрос, но я подумал, что я также поделюсь решением, чтобы предотвратить это случайно, если вы используете PuTTY в Windows - подробности см. в https://serverfault.com/questions/731022/prevent-accidental-execution-of-commands-in-linux-if-pasting-text-contain-one .

1
24.04.2018, 18:40
1 ответ

Здесь используются не регулярные выражения, а шаблоны подстановки имен файлов.

[...]всегда будет соответствовать только одному символу (это происходит одинаково между шаблонами подстановки имен файлов и регулярными выражениями ), поэтому он не соответствует трем символамcho([cho]означает «один из c, hи o").

Чтобы сопоставить все имена, начинающиеся с a., используйте a.*.

Чтобы сопоставить все имена, начинающиеся с a., а затем сразу заканчивающиеся на c, h, oили cho, сначала установите параметр оболочки extglobс shopt -s extglobи используйте a.@([cho]|cho).

Раскрытие фигурных скобок, например a.{c,h,o,cho}, будет генерировать имена файлов в командной строке, но не дает гарантии, что эти файлы действительно существуют.

3
27.01.2020, 23:18

Теги

Похожие вопросы