Grep регулярное выражение не работает

Grep регулярное выражение не работает

Поэтому я создаю простую команду grep, которая возвращает только последних вошедших в систему пользователей, чье имя пользователя начинается с 161 и имеет 3 цифры рядом с ним:

last | grep "^161[0-9]{3}"

Однако он ничего не печатает, хотя в списке есть эти имена пользователей. Что еще более странно, так это если я делаю egrep вместо grep

last | egrep "^161[0-9]{3}"

Команда работает.

Кто-нибудь может объяснить, в чем разница?

решение1

Как уже указывал steeldriver, grepиспользует базовые регулярные выражения, тогда как grep -Eи egrepиспользуют расширенные регулярные выражения.

last | grep  '^161[0-9]\{3\}'
last | egrep '^161[0-9]{3}'

Связанный контент