추가 읽기

추가 읽기

이 형식의 파일이 두 개 있습니다.

File1: id:0.0260509118455
File2: id:X:Y

file1의 모든 줄이 동일한 ID를 포함하는 두 번째 파일의 줄과 연결된 세 번째 파일을 얻고 싶습니다. 즉:

File3: id:0.0260509118455:X:Y

(파일 1에는 100줄, 파일 2에는 666줄) 페어링할 수 없는 회선이 없습니다.

답변1

데이터베이스 테이블이 포함된 파일을 조인하려면 join테이블을 키 순서로 정렬한 후 다음 명령을 사용하십시오.

sort -b -t : 파일 1 > 파일 1 정렬
sort -b -t : 파일 2 > 파일 2 정렬
Join -t: 파일 1 정렬 파일 2 정렬

추가 읽기

답변2

이 작업을 수행하려면 붙여넣기 명령을 사용할 수 있어야 합니다. 행 대신 열을 읽습니다.

awk -F: '{ print $2}' File2 > File4

ID 삭제: 태그

그 다음에

paste  File1 File4 > File3

일을 해야 합니다.

답변3

어떤 방식으로든 파일을 정렬하거나 전처리하지 않고 awk를 사용하여 ID를 확인할 수도 있습니다.

awk -F: 'NR==FNR{a[$1]=$0;next}$1 in a {print a[$1],$2,$3}' OFS=: file1 file2 >file3

PS: 성능을 위해 작은 파일(파일 1 100줄)이 먼저 메모리에 로드된 다음 큰 파일이 메모리와 비교됩니다.

관련 정보