첫 번째 열에 따라 두 파일의 공통 값을 어떻게 바꾸나요?
파일 1(1.txt)이 있습니다.
CH063_01084
CH063_01083
CH063_13925
CH063_14473
파일 2(2.txt):
CH063_01083 FGSG_16349 4
CH063_14473 FGSG_16350 5
출력 파일은 다음과 같아야 합니다.
CH063_01084
CH063_01083 FGSG_16349 4
CH063_13925
CH063_14473 FGSG_16350 5
답변1
당신이 사용할 수있는join
이를 위해:
join -a 1 file1 file2
join
공통 필드를 기반으로 파일을 결합합니다. 기본적으로 이는 두 파일의 첫 번째 필드입니다. -a 1
쌍이 없을 때 첫 번째 파일의 행을 포함한다는 의미입니다. 첫 번째 필드 이외의 필드를 선택하려면 를 사용하여 -1 N -2 M
N에서 필드를 선택 file1
하고 M에서 필드를 선택합니다 file2
.
답변2
당신이 사용할 수있는 join
:
$ join -a 1 file1.txt file2.txt
A
B asas 4
C
D addd 5
파일이 정렬되지 않은 경우:
join -a 1 <(sort 1.txt) <(sort 2.txt)
하지만 그렇게 하면 형식이 손실됩니다. 당신이 사용할 수있는 perl
:
$ perl -anle ' $h{$F[0]} = $_;
END { print for sort values %h }
' file1.txt file2.txt