그래서 두 개의 다른 파일이 있습니다.
파일 1.txt는 다음과 같습니다.
abcdefjeiireiiioe:data:otherdata
rijirjeiwrieeoooe:datamore:otherdatamore
파일 2.txt는 다음과 같습니다.
abcdefjeiireiiioe:data:otherotherdata
rijirjeiwrieeoooe:datamore:otherotherdatamore
*other random lines which do not occur in file1.txt also and are not needed
다음과 같이 보이도록 같은 줄에 인쇄하려면 어떻게 해야 합니까?
abcdefjeiireiiioe:data:otherdata:data:otherotherdata
답변1
두 번째 행도 병합하고 싶다고 가정합니다. 당신은 그것을 사용할 수 있습니다 join
:
join -t : file1 file2
이는 구문 분석 file1
되어 구분 기호 file2
로 사용되며 :
첫 번째 필드가 일치하는 줄을 병합합니다. 기본적으로 일치하지 않는 행은 무시되고 출력에 표시되지 않습니다.
입력 파일은 조인 필드에서 정렬되어야 합니다. 그렇지 않은 경우 다음과 같이 전처리할 수 있습니다.
join -t : <(sort -k 1,1 -t : file1) <(sort -k 1,1 -t : file2)
또는 정렬 확인을 무시해 볼 수도 있습니다.
join -t : --nocheck-order file1 file2