$ grep -Ex '[[:digit:]]+(.|[^[:digit:]]{2})' file1
1234567a
2245678902da
Расширенное регулярное выражение [[:digit:]]+(.|[^[:digit:]]{2})
будет соответствовать одной или нескольким цифрам, за которыми следует либо неопределенный символ, либо две не -цифры (это буквальная интерпретация вашей спецификации "начинается с числа, но заканчивается на любой символ на последнем или двух последних символах, который не является цифрой " ). Параметр -x
для grep
гарантирует, что совпадение будет по всем строкам.
Обратите внимание, что эта буквальная интерпретация того, что вы указали, также соответствует строкам, содержащим только цифр.
С
$ grep -Ex '[^[:digit:]]{1,2}[[:digit:]]+' file2
A1234
Ab1234
мы сопоставляем строки, которые начинаются с одной или двух цифр, отличных от -, а затем содержат одну или несколько цифр до конца строки.
Для визуального представления двух регулярных выражений (, а также в то же время показывая, как это сделать с помощьюsed
):
Первый:
$ sed -nE 's/^([[:digit:]]+)(.|[^[:digit:]]{2})$/(\1)(\2)/p' file1
(234567)(a)
(2245678902)(da)
Второй:
$ sed -nE 's/^([^[:digit:]]{1,2})([[:digit:]]+)$/(\1)(\2)/p' file2
(A)(1234)
(Ab)(1234)
Удалите все круглые скобки из команды sed
, чтобы получить решение sed
.
rpm --addsign
rpm: /usr/bin/rpmsign: No such file or directory
rpm --addsign
использует rpmsign
, т.е. это одна и та же команда.
Псевдонимы определены в /usr/lib/rpm/rpmpopt-$VERSION
.