서로 다른 파일의 두 필드를 비교하고 순서에 관계없이 일치하는 항목만 반환합니다.

서로 다른 파일의 두 필드를 비교하고 순서에 관계없이 일치하는 항목만 반환합니다.

File1.txt 파일이 2개 있습니다.

Column1    | Column2
username2  | timestamp
username1  | timestamp
username4  | timestamp

파일 2.txt:

Column1    | Column2
username1  | timestamp
username3  | timestamp
username2  | timestamp

Column1 값과 일치하는 위치를 Column1의 내용만 표시하는 새 파일로 출력하고 싶습니다. Column1의 값은 file1.txt와 file2.txt 사이에서 항상 동일한 순서로 되어 있지 않으며, 두 파일 모두에서 일부 항목이 누락되어 있습니다.

출력-File3.txt

열 1
사용자 이름 1
사용자 이름 2

답변1

사용awk

awk -F ' *| *' 'NR==FNR{a[$1];next}($1 in a)' file1 file2

배열은 a첫 번째 file1 열의 내용으로 채워집니다. 다음 파일을 구문 분석할 때 항목 배열과 일치하는 행만 인쇄됩니다.

답변2

두 파일 모두에서 열 1을 추출하고 정렬한 후 중복 행을 찾습니다.

cut -d" " -f1 File1.txt File2.txt | sort | uniq -d

답변3

비교하기 전에 두 파일을 정렬하세요.

sort f1 > f1s
sort f2 > f2s
diff f1s f2s

관련 정보