grep 제한

grep 제한

YAML 파일이 있습니다.

- name: scheduler-configuration
- name: scheduler

나는 다음과 같은 것을 잡고 있습니다.

grep "scheduler" file.txt 

출력에는 두 줄이 표시되지만 한 줄만 필요합니다. 예를 들면 다음과 같습니다.

-name: scheduler

grep이(또는 유사한 도구)를 정확한 패턴으로 제한할 수 있는 방법이 있습니까 ?

답변1

설명대로여기, grep은 단어가 영숫자와 밑줄로 구성된 것으로 간주합니다. 따라서 .-grep schedulergrep -w

영숫자와 "_"의 반대 문자뿐만 아니라 다른 문자도 포함하는 "스케줄러" 앞뒤에 일치하는 패턴을 직접 작성할 수 있습니다.

grep -E '([^[:alnum:]_-]|^)scheduler([^[:alnum:]_-]|$)' file.txt

이는 다른 영숫자 문자 또는 "_" 또는 "-"로 묶이지 않은 "스케줄러"와 일치합니다.

답변2

scheduler공백으로 둘러싸여 있거나 아무 것도 없는 것처럼 보입니다 .

$ grep -E '(^|[[:space:]])scheduler([[:space:]]|$)' file
- name: scheduler

관련 정보