두 파일의 일치하는 줄 [중복]

두 파일의 일치하는 줄 [중복]

두 개의 파일 file1file2.

file1:

passd:xxx
hopla:alli
gnar:gungg
araf:utap

file2:

alli
utap

file2의 어떤 줄/단어가 파일과 일치하는지 어떻게 확인할 수 있나요? 사실, 아마도 awk를 사용하여 이 작업을 수행할 수 있지만 comm -1 -2 file1 file2, awk를 사용하여 이 작업을 수행할 수 있습니까?

답변1

awk를 사용하면 @jasonwryan이 제안한 것부터 시작할 수 있습니다.두 파일을 비교해보세요...

하지만 필요에 맞게 수정하시기 바랍니다. 명령줄에서 수행할 수 있는 작업과 그 결과는 다음과 같습니다.

$ awk -F: 'FNR==NR {arr[$0];next} $2 in arr' file2 file1
hopla:alli
araf:utap
  • file2검색할 단어가 포함된 목록을 지정했습니다 .
  • file1검색할 대용량 텍스트 파일입니다.
  • -F:구분 기호를 콜론으로 지정:
  • $2이 예에서 일치시킬 필드는 file1필드 2 이기 때문입니다.
  • 일치하는 항목이 발생하면 기본 작업은 해당 줄을 인쇄하는 것이므로 두 개의 일치하는 줄이 표시됩니다.

추가 정보

답변2

grep에 문제가 있는 경우

  1. dos2unix file1 file2grep 작동을 방해할 수 있는 문제가 있는 비 Unix 형식을 미리 제거해 보십시오.
  2. @drewbenn이 언급했듯이,grep -f file2 file1

그러면 일치하는 줄이 성공적으로 표시됩니다.

hopla:alli
araf:utap

답변3

이 명령은 다음을 수행하는 데 도움이 될 수 있습니다.

cat file1 | awk '{FS=":" print $0}' | xargs grep file2

diff 명령이 도움이 되는지 잘 모르겠습니다. 그러나 설치하면 다음을 사용합니다.diff file1 file2

관련 정보