grep 정규 표현식은 어떻습니까?

grep 정규 표현식은 어떻습니까?

안녕하세요. 5자리 우편번호가 포함된 파일이 있습니다.

grep을 사용하여 9부터 시작하는 우편번호를 인쇄하려고 하는데 4-7 사이의 숫자만 포함할 수 있습니다.

내가 사용하는 명령은

grep '[4-7], 9'$ zipcodesDataEntry.cvs

문제는 내가 받은 우편번호에 숫자 1 2 3 8이 포함되어 있다는 것입니다. 내 출력은 다음과 같아야 합니다.

95544
94554
94445
95567

그러나 다음과 같은 우편번호가 있습니다.

91121
92231 

9가 아니고 4-7 범위에 있는 숫자를 제외하려고 합니다.

답변1

이 파일이 주어지면:

cat zipcodes 
95544 94554 94445 92231 95567 91121

이 grep을 사용할 수 있습니다.

egrep -o '9[4-7]{4}' zipcodes 
95544
94554
94445
95567

답변2

입력 파일 내용:

95544 
94554 
94445 
95567
91121 
92231

awk(사용할 수 없는 경우 ) 사용하려면 egrep다음과 같이 시도해 보세요.

awk '/9[4-7]{4}/' zip.txt

산출:

95544 
94554 
94445 
95567

답변3

grep '^9.[4-7].*' 우편번호DataEntry.cvs

  1. ^ 비교되는 문자열의 시작
  2. .(마침표)는 모든 문자와 일치합니다.
  3. 별표, 0개 이상

관련 정보