이 명령은 egrep
무엇을 합니까 ?
egrep '[^A-M][0-9]+' /etc/passwd
/etc/passwd
지금까지는 AM으로 시작하고 숫자 0-9를 포함하는 모든 파일을 검색할 것이라고 생각합니다 . 맞아?
답변1
^
표현의 시작 부분에서는 "줄의 시작"을 의미합니다. 그러나 ^
괄호 안의 표현은 모든 것과 일치합니다.아니요그 표현에. 예를 들어 [abcd]
문자 a, b, c 또는 d를 일치시키는 경우 표현식은 [^abcd]
해당 문자를 제외한 모든 문자와 일치합니다.
따라서 "AM이 아닌 모든 항목 뒤에 1개 이상의 숫자가 오는 것"과 일치하는 표현식을 얻게 됩니다.
다음 줄은 모두 이 표현식과 일치합니다.
mmmmmz09123
00
this is a very long line that includes the number 1.
둘 다 숫자를 포함하기 때문에 앞의 숫자는 AM 범위를 벗어납니다.