211.82.96.2 北京 海淀区
211.82.96.3 北京 朝阳区
211.82.96.5 南阳 卧龙区
10.1.18.7 郑州 新郑
10.1.18.7
211.82.96.5
在使用join前,需要将两个文件按照相同的规则进行排序,这样才能使用join达到期望的效果
#!/bin/bash
filenameBeforSort1="ip_city_location.file"
filenameBeforSort2="ip.file"
sortedFile1="ip_city_location.sort"
sortedFile2="ip.sort"
sort $filenameBeforSort1 > $sortedFile1
sort $filenameBeforSort2 > $sortedFile2
join $sortedFile1 $sortedFile2 | awk '{print $1,$2}'
10.1.18.7 郑州
211.82.96.5 南阳
211.82.96.2 北京 海淀区
211.82.96.3 北京 朝阳区
211.82.96.5 南阳 卧龙区
211.82.96.3 北京 朝阳区
10.1.18.7 郑州 新郑
211.82.96.2 北京 海淀区
10.1.18.7 郑州 新郑
10.1.18.7
211.82.96.5
10.1.18.7
211.82.96.5
#!/bin/bash
filenameBeforSort1="ip_city_location.file"
filenameBeforSort2="ip.file"
sortedFile1="ip_city_location.sort"
sortedFile2="ip.sort"
sort $filenameBeforSort1 | uniq | sort > $sortedFile1 #第二个sort命令不写效果也一样,但是个人认为加上更保险一些,不过数据量大时也许会影响效率
sort $filenameBeforSort2 |uniq | sort > $sortedFile2 #第二个sort命令不写效果也一样,但是个人认为加上更保险一些,不过数据量大时也许会影响效率
join $sortedFile1 $sortedFile2 | awk '{print $1,$2}'
10.1.18.7 郑州
211.82.96.5 南阳
#!/bin/bash
filenameBeforSort1="ip_city_location.file"
filenameBeforSort2="ip.file"
sortedFile1="ip_city_location.sort"
sortedFile2="ip.sort"
sort $filenameBeforSort1 > $sortedFile1
sort $filenameBeforSort2 > $sortedFile2
join $sortedFile1 $sortedFile2 | awk '{print $1,$2}' | sort | uniq #在做uniq命令之前是必须先执行sort命令的
10.1.18.7 郑州
211.82.96.5 南阳