В качестве альтернативы вы можете открыть окно настроек клавиатуры и назначить пользовательскую комбинацию клавиш для команды gnome-session-quit --power-off
, которая вызовет меню выключения. Я настроил его на срабатывание по Super+q.
$ 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
.
Немного другая интерпретация. Я прочитал это, так как последние 1 -2 символа не могут быть цифрами, поэтому я получаю
grep -E '^[[:digit:]]+[^[:digit:]]{1,2}$' file
1234567a
2245678902da
Для первого вопроса ниже указана команда
sed -n '/^[0-9]*[a-z]\{,2\}$/p' filename
выход
1234567a
2245678902da
Для второго вопроса ниже команда
sed -n '/^[A-Za-z]\{1,2\}[0-9]*$/p'
выход:
A1234
Ab1234