合并两个文件

合并两个文件

我有这个 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

相关内容