나는 다음과 같은 grep을 가지고 있습니다
grep "/abc/[A-Z]" file1.txt | cut -d/ f3 | sort -u
grep은 결과를 완벽하게 반환합니다.
ALPHA
abc
BRAVO
CHARLIE
그런데 왜 출력이 abc
포함되어 있습니까? 구분 기호 백슬래시 뒤에 대문자 단어만 사용하도록 정규식을 설정했습니다. 이것이 예상된 결과입니까? abc
출력에서 어떻게 제거해야 합니까 ?
답변1
에 사용할 정규식을 고정하지 않았습니다 grep
. 그 결과 라인의 어느 곳에서나 일치할 수 있습니다.
예를 들어 한 줄은 다음과 같습니다.
blah/blah/abc/Abc
또는
/blah/abc/Abc
은 표현식과 일치하며 둘 다 문자열을 abc
세 번째 /
구분 필드로 포함합니다.
표현식을 줄의 시작 부분에 고정하려면 다음을 사용하십시오.
^/abc/[A-Z]
abc
또는 다른 방법으로 더 엄격한 일치를 강제하거나 스타일과 응용 프로그램에 가장 적합한 방법을 사용하여 최종 결과를 정리하세요 .grep -v -F -x abc