다른 숫자를 자르지 않고 실제 숫자를 추출합니다.

다른 숫자를 자르지 않고 실제 숫자를 추출합니다.

7자리와 5자리를 추출하는 로그 파일이 있습니다. grep -ao '[0-9][ ]\{7\}' /var/log/Bridge.log.1 | sort | uniq -c 이것은 작동하고 내 7자리 숫자를 추출합니다. 이것을 사용하면 5자리와 7자리가 혼합됩니다.

grep -ao '[0-9][ ]\{5\}' /var/log/Bridge.log.1 | sort | uniq -c

문제는 5자리 검색어 끝에 공백을 추가하는 방법입니다.

답변1

[0-9][ ]\{7\}숫자 뒤에 7개의 공백이 오는 것과 일치합니다(GNU 사용 grep).

아마도 당신이 원하는 것은 다음과 같습니다

grep -o -w -E '[0-9]{7}'

이렇게 하면 -w완전한 "단어"만 얻을 수 있습니다. 즉, 단어가 아닌 하위 문자열과 일치합니다. -E확장 정규식을 활성화합니다 (필수 {7}. \{7\}기본 정규식에 사용하는 것은 계속 사용할 수도 있고 사용하지 않을 수도 있는 GNU 전용 확장입니다).

-w동등한 것을 사용하십시오

grep -o -E '\<[0-9]{7}\>'

where \<\>는 찾고 있는 "단어" 주위의 너비가 0인 단어 경계와 일치합니다.

관련 정보