저는 KSH, Solaris 5.10을 사용하고 있습니다. file1
과일 목록이 포함되어 있고 file2
과일 및 견과류 목록이 포함되어 있다고 가정합니다 . 다음 명령에 대한 나의 이해
egrep -if file1 file2
이는 행 1을 가져와서 file1
전체적으로 검색 file2
하고 의 모든 행에 대해 이 프로세스를 반복한다는 것 입니다 file1
.
file1
따라서 최종 출력은 합계에 나타나는 모든 과일이 됩니다 file2
. 제가 틀렸다면 정정해 주시고, 필요한 경우 개선 사항을 제안해 주시기 바랍니다.
답변1
내부 메커니즘은 다를 수 있지만 그렇습니다. 효과는 귀하가 설명하는 것과 같습니다. 지침:
file2
주어진 명령의 일부가 의 행과 일치하면 명령은 의 행과 일치합니다file1
. 따라서apple
in은 in과file1
일치합니다 . 이를 방지하려면 다음 방법을 사용할 수도 있습니다 .pineapple
file2
-x
-x Consider only input lines that use all characters in the line excluding the terminating <newline> to match an entire fixed string or regular expression to be matching lines.
이것을 사용한다면 건너 뛰고
egrep
바로 갈 수 있다고 생각합니다grep
.빈 줄은
file1
다음과 같습니다.모든 것인쇄 하려면file2
다음과 같은 줄을 필터링해야 합니다.grep -xif <(grep . file1) file2
file1
실제 파일에 포함된 내용에 따라 확장된 정규 표현식이 아닌 고정된 문자열 목록으로 처리할 수 있습니다 .pea.
일치 할 수 있습니다pear
. 이렇게 하세요:grep -xiFf <(grep . file1) file2