进行数据的提取时,最好在所需信息之外再多提取一个关键字(key)项,并且保持相关数据的关键字(key)项相同。这样便于在join操作之前的sort操作,同时可以保证无论是以什么顺序提取出的数据都可以按照同样的关键字(key)项排序。在进行join操作之前一般要进行sort处理,此时如果没有关键字(key)作为sort的key就很难甚至无法生成有效的新的数据表。
如果源数据是已经有序的,则可以不经过sort操作,甚至可以不进行关键字的选取(无关键字则禁止进行sort操作),直接提取相关数据条目进行join操作。值得注意的是以这种无关键字的数据条目作为源的话,很容易生成无意义的甚至错误的数据表,应尽量避免这种类型的数据的生成。
tel.txt
Jone 85394Jack 89230
Michel 83923
Born 84239
number.txt
Jone 2015012401Jack 2015012402
Michel 2015012403
Born 2015012404
merge.sh
#!/bin/bash -
cat tel.txt|sort > tel.sorted
cat number.txt|sort > number.sorted
join tel.sorted number.sorted>member.txt
rm *.sorted
exit
member.txt
Born 84239 2015012404
Jack 89230 2015012402
Jone 85394 2015012401
Michel 83923 2015012403