Восстановить от несуществующего Xorg? (17.04)

[1-12]\/[0-31] и [0-99] не означают от 1 до 12, от 0 до 31 и от 0 до 99.

[1-12] означает диапазон символов, начинающихся с 1 до 1, и 2. По существу: [12]. (Сравнить с [0-1a].) [F7] означает диапазон символов начиная с 0 до 3 и 1: [0123].

Аналогично для [0-99]. Выразить диапазон чисел с помощью регулярных выражений непросто.

Если числа не используют двойные цифры (01/06/33), вам нужно будет сделать что-то вроде: [0-9]{1,2} для дня и месяц и [0-9]{2} за год, или регулярное выражение будет быстро расти громоздким. Это, конечно, рискует выделить что-то вроде 99/99/99.

Пример:

$ sed "s/^\(muru\/\)[0-9]\{1,2\}\/[0-9]\{1,2\}\/[0-9]\{2\}/\111\/14\/46/g" <<<'muru/1/4/85'
muru/11/14/46
$ sed "s/^\(muru\/\)[0-9]\{1,2\}\/[0-9]\{1,2\}\/[0-9]\{2\}/\111\/14\/46/g" <<<'muru/10/4/85'
muru/11/14/46
$ sed "s/^\(muru\/\)[0-9]\{1,2\}\/[0-9]\{1,2\}\/[0-9]\{2\}/\111\/14\/46/g" <<<'muru/10/28/85'
muru/11/14/46

Предполагаю, что вы хотите сохранить имя, поэтому я использовал обратные ссылки для ссылайтесь на него в подстановке (\1).

1
задан 25 May 2017 в 17:11

0 ответов

Другие вопросы по тегам:

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