파일을 한 줄씩 병합

파일을 한 줄씩 병합

간단한 bash 스크립트를 사용하거나 사용하여 제공된 지침에 따라 File1새로운 전체 줄을 복사할 수 있습니까?File3File2sedawk

File1: /*two or more columns*/
AC    456324
DC    689712
GH    123677
KL    236587

File2: /*one column*/
AC
DC

File3: 
AC    456324
DC    689712

저는 실제로 Python 사전을 사용하여 이 작업을 수행하고 있는데 간단한 해결 방법을 알고 계시는지 궁금합니다.

답변1

그리고grep

grep -Ff File2 File1

그리고awk

awk 'NR==FNR {a[$1]++;next} a[$1]' File2 File1

답변2

당신은 그것을 사용할 수 있습니다join특정 열의 값이 동일한 두 파일의 위치를 ​​연결하여 두 파일의 행을 병합합니다. 입력 파일은 이 열의 값을 기준으로 정렬되어야 합니다.

join File1 File2

파일이 정렬되지 않은 경우 bash/ksh93/zsh에서:

join <(sort File1) <(sort File2)

여기에 결합할 필드는 AC다음을 포함하는 필드입니다. DC다음은 조인할 필드가 의 열 3 File1과 열 2인 경우의 예입니다 File2.

join -1 3 -2 2 <(sort -k3,3 File1) <(sort -k 2,2 File2)

관련 정보