이 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