두 개의 파일 file1
과 file2
.
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에 문제가 있는 경우
dos2unix file1 file2
grep 작동을 방해할 수 있는 문제가 있는 비 Unix 형식을 미리 제거해 보십시오.- @drewbenn이 언급했듯이,
grep -f file2 file1
그러면 일치하는 줄이 성공적으로 표시됩니다.
hopla:alli
araf:utap
답변3
이 명령은 다음을 수행하는 데 도움이 될 수 있습니다.
cat file1 | awk '{FS=":" print $0}' | xargs grep file2
diff 명령이 도움이 되는지 잘 모르겠습니다. 그러나 설치하면 다음을 사용합니다.diff file1 file2