![Grep 출력 - 예상되는 결과는 무엇입니까?](https://linux55.com/image/196800/Grep%20%EC%B6%9C%EB%A0%A5%20-%20%EC%98%88%EC%83%81%EB%90%98%EB%8A%94%20%EA%B2%B0%EA%B3%BC%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 다음과 같은 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