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