Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将基于列值的数据子集为另一个数据的列值,并在Bash中合并_Linux_Bash_Dataframe_Join - Fatal编程技术网

Linux 将基于列值的数据子集为另一个数据的列值,并在Bash中合并

Linux 将基于列值的数据子集为另一个数据的列值,并在Bash中合并,linux,bash,dataframe,join,Linux,Bash,Dataframe,Join,我有两个数据,我想根据另一个data2的列值将data1子集并合并,我的data1如下所示: ID address phone 123 .... ..... 456 .... ..... 789 .... ..... 101 .... ..... ID City Zipcode if_travel 123 .... .... .... 456 .... .... .... 数据2看

我有两个数据,我想根据另一个data2的列值将data1子集并合并,我的data1如下所示:

ID   address   phone
123 ....      .....
456 ....      .....
789 ....      .....
101 ....      .....
ID   City     Zipcode   if_travel
123  ....     ....        ....
456  ....     ....        ....
数据2看起来像:

ID   address   phone
123 ....      .....
456 ....      .....
789 ....      .....
101 ....      .....
ID   City     Zipcode   if_travel
123  ....     ....        ....
456  ....     ....        ....
我希望获得如下数据:

ID   address   phone   City     Zipcode   if_travel
123  ....      .....   ....     ....        ....
456  ....      .....   ....     ....        ....
789  ....      .....    NA       NA          NA
101  ....      .....    NA       NA          NA

这个过程在python中似乎类似于左join,但是在bash命令中有没有办法完成同样的过程?谢谢

有很多方法可以做到这一点;这里有一个:

join -o '0,1.2,1.3,2.2,2.3,2.4' -a1 -e 'NA' <(sort file1.txt) <(sort file2.txt) | awk '{printf "%-7s %-7s %-7s %-7s %-7s %7s\n",$1,$2,$3,$4,$5,$6}' | sort -nk1
文件2:

ID   City Zipcode if_travel
123  amman 2222   yes
456  zarqa 3030   no
输出:

ID      address phone   City    Zipcode if_travel
101     bla     1616    NA      NA           NA
123     jordan  123     amman   2222        yes
456     usa     144     zarqa   3030         no
789     bla     606     NA      NA           NA
join--help
将帮助您开始,或者在此处搜索
[bash]join文件
,在这个主题上已经有100个QA。唯一的限制是输入文件必须按用于连接的键列排序。祝你好运