
Поэтому я создаю простую команду 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}'