Похоже, это исправлено в CentOS 7, теперь можно добиться разблокировки с помощью любой команды независимо от метода блокировки
++Кто-то упомянул, что эти 2 команды делают разные вещи -одна блокирует пароль, а другая блокирует учетную запись пользователя, НЕ верно :passwd -S (имя пользователя )будет отображать LK в обоих сценариях (usermod -L (имя пользователя )И пароль -l (имя пользователя))
Блокировка учетной записи пользователя с помощью :изменение -E 0 (имя пользователя)
Отказ от ответственности :Я не пытался анализировать ваше регулярное выражение. Вот ответ на ваш вопрос.
[0-9]{3}
означает ровно три десятичных знака. [0-9] {3}
означает одну десятичную цифру, за которой следуют ровно три пробела. Это так, потому что {3}
(, который является так -называемым «связанным», )повторяет предшествующий ему так -называемый «атом».
Со страницы руководства по регулярным выражениям:
$ man regex
... An atom followed by a bound containing one integer i and no comma
matches a sequence of exactly i matches of the atom....
Термин «атом» определяется в следующем абзаце. Отличное чтение.
Единственные известные мне регулярные выражения, в которых можно игнорировать пробелы, — это perl или совместимые и ast -открытые (, которые действительно заимствовали многие операторы из perl-регулярных выражений ), хотя это не делается по умолчанию., только если установлен флаг x
.
Насколько мне известно, только ssed
поддерживает PCRE с опцией -R.
Так что вам нужно:
ssed -R 's/ \d {3}/.../gx'
ssed -R 's/(?x) \d {3}/.../g'
Или (ast -open sed
, который также является sed
встроенным в ksh93, если включен):
ast-sed 's/\(?x\) \d \{3\}/.../g'
ast-sed -E 's/(?x) \d {3}/.../g'
ast-sed -A 's/(?x) \d {3}/.../g'
(для 3 разновидностей регулярного выражения он поддерживает :базовый, расширенный, дополненный ).
Когда флаг x
включен, для соответствия буквальному символу пробела вам необходимо [ ]
или поставить перед пробелом префикс\
(или использовать \x20
в системах на основе ASCII ).