任何人都可以通过公共数据(列)帮助合并不同的文件吗?请=(
file1.txt
ID Kg Year
3454 1000 2010
3454 1200 2011
3323 1150 2009
2332 1000 2011
3454 1156 201
file2.txt
ID Place
3454 A1
3323 A2
2332 A6
5555 A9
file 1+2
ID Kg Year Place
3454 1000 2010 A1
3454 1200 2011 A1
3323 1150 2009 A2
2332 1000 2011 A6
3454 1156 2013 A1
所以第二个文件应该先连接到第一个文件。正如你可以看到文件2中的ID 5555没有使用。
如何在linux或....中执行此操作。
答案 0 :(得分:2)
如果从排序文件开始,该工具为join
。在您的情况下,您可以即时排序。
join <(sort file1.txt) <(sort file2.txt)
标题也将加入,但不会出现在顶部。管道到sort -r
答案 1 :(得分:1)
如果您不关心维持行的顺序,请使用karakfa的join
命令。
要保持行的原始顺序,请使用awk
awk '
NR==FNR {place[$1]=$2; next}
$1 in place {print $0, place[$1]}
' file2.txt file1.txt | column -t
ID Kg Year Place
3454 1000 2010 A1
3454 1200 2011 A1
3323 1150 2009 A2
2332 1000 2011 A6
3454 1156 201 A1