当前位置: 技术问答>linux和unix
用shell连接两个文件,如何实现?
来源: 互联网 发布时间:2016-12-15
本文导语: 有两个文件a.txt 和 b.txt a.txt中第一列和第二列数字都有重复,格式如下: 20000401 100000999 20000401 100002999 20000401 100007999 20000401 100013999 20100503 100000999 20100503 400002999 20100503 100007999 20100503 400013999 b.txt中第一列数字...
有两个文件a.txt 和 b.txt
a.txt中第一列和第二列数字都有重复,格式如下:
20000401 100000999
20000401 100002999
20000401 100007999
20000401 100013999
20100503 100000999
20100503 400002999
20100503 100007999
20100503 400013999
b.txt中第一列数字唯一,不重复,格式如下:
100000999 123
100002999 456
100007999 137
100013999 253
400002999 394
400013999 672
想要连接两个文件形成c.txt,形成的c.txt格式如下:
20000401 100000999 123
20000401 100002999 456
20000401 100007999 137
20000401 100013999 253
20100503 100000999 123
20100503 400002999 394
20100503 100007999 137
20100503 400013999 672
用shell命令,或shell编程,请问如何实现?
a.txt中第一列和第二列数字都有重复,格式如下:
20000401 100000999
20000401 100002999
20000401 100007999
20000401 100013999
20100503 100000999
20100503 400002999
20100503 100007999
20100503 400013999
b.txt中第一列数字唯一,不重复,格式如下:
100000999 123
100002999 456
100007999 137
100013999 253
400002999 394
400013999 672
想要连接两个文件形成c.txt,形成的c.txt格式如下:
20000401 100000999 123
20000401 100002999 456
20000401 100007999 137
20000401 100013999 253
20100503 100000999 123
20100503 400002999 394
20100503 100007999 137
20100503 400013999 672
用shell命令,或shell编程,请问如何实现?
|
awk 'NR==FNR{a[$1]=$2}NR>FNR{print $1,$2,a[$2]}' b.txt a.txt
|
或者试试
join -j 1.2 2.1 a.txt b.txt
我没有环境
join -j 1.2 2.1 a.txt b.txt
我没有环境
|
LS应该正确的,如果还不行再试试
join -j1 2 -j2 1 a.txt b.txt
估计根据系统不同,join这个命令的option有些稍微差别
join -j1 2 -j2 1 a.txt b.txt
估计根据系统不同,join这个命令的option有些稍微差别