Grep 정규 표현식이 작동하지 않습니다.

Grep 정규 표현식이 작동하지 않습니다.

그래서 사용자 이름이 161로 시작하고 옆에 3자리 숫자가 있는 마지막으로 로그인한 사람만 가져오는 간단한 grep 명령을 만들었습니다.

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

그러나 목록에 이러한 사용자 이름이 포함되어 있어도 아무 것도 인쇄되지 않습니다. 더 이상한 점은 grep 대신 egrep을 사용한다는 것입니다.

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

이 명령은 유효합니다.

차이점이 무엇인지 설명할 수 있는 사람이 있나요?

답변1

Steeldriver가 이미 지적했듯이 grep기본 정규식을 사용 grep -E하고 egrep확장 정규식을 사용하십시오.

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

관련 정보