두 파일 병합

두 파일 병합

이 file1.txt가 있습니다

deiauk 9
kespaul 8
luktol 7 
titkur 6

및 기타 file2.txt

kespaul b
deiauk a 

두 파일을 첫 번째 값으로 병합하고 싶으므로 결과는 다음과 같아야 합니다.

deiauk 9 a
kespaul 8 b
luktol 7 
titkur 6

답변1

Join 명령을 사용할 수 있습니다. (파일을 정렬하는 것이 좋을 것입니다)

join file1.txt file2.txt -a 1

답변2

우리는 함께 awk할 수 있습니다:

awk '
  NR==FNR { k[$1]=$2; next }
  { print $0, k[$1] }
' file2.txt file1.txt

참고: 이 awk솔루션은 정렬되지 않은 원시 입력 데이터에도 작동하며 비용이 많이 드는 추가 프로세스가 필요하지 않습니다.

답변3

sort file2.txt | join -a 1 file1.txt -

가입하다정렬된 입력이 필요합니다. '-'는 출력을 허용하는 두 번째 파일에 표준 입력이 사용됨을 지정합니다.유형입력으로 사용됩니다. "-a 1"은 첫 번째 파일에서 일치하지 않는 행이 출력에 포함되도록 지정합니다.

답변4

모든 내용이 한 줄에 표시되도록 파일을 정렬해야 합니다.

sort file1.txt > f1s ; sort file2.txt >f2s ; join  -1 1 -2 1 -a 1 -a 2 f1s f2s ; rm f1s f2s

관련 정보