合并两个文件

use*_*375 5 shell-script text-processing join

我有这个file1.txt

deiauk 9
kespaul 8
luktol 7 
titkur 6
Run Code Online (Sandbox Code Playgroud)

和其他 file2.txt

kespaul b
deiauk a 
Run Code Online (Sandbox Code Playgroud)

我想通过第一个值将两个文件合并,所以我的结果应该是

deiauk 9 a
kespaul 8 b
luktol 7 
titkur 6
Run Code Online (Sandbox Code Playgroud)

bgv*_*han 2

sort file2.txt | join -a 1 file1.txt -
Run Code Online (Sandbox Code Playgroud)

join需要排序的输入。'-' 指定标准输入将用于第二个文件,这允许将sort的输出用作输入。“-a 1”指定第一个文件中的不匹配行将包含在输出中。

  • 实际上,我认为 heemayl 在另一个答案的评论中的解决方案比我的更好,因为它是一个更通用的解决方案。我的仅在 file1.txt 已排序时才有效。join -1 1 -2 1 -a 1 <(排序f1.txt) <(排序f2.txt) (2认同)