- 论坛徽章:
- 145
|
本帖最后由 jason680 于 2016-10-27 08:13 编辑
回复 1# 287380917
$ bash get_ssx.sh | column -t
北京市 北京市 北京市
北京市 北京市 东城区
北京市 北京市 西城区
北京市 北京市 崇文区
北京市 北京市 宣武区
北京市 北京市 朝阳区
北京市 北京市 丰台区
北京市 北京市 石景山区
北京市 北京市 海淀区
北京市 北京市 门头沟区
北京市 北京市 房山区
天津市 天津市 天津市
河北省 河北省 河北省
河北省 石家庄市 石家庄市
河北省 唐山市 唐山市
河北省 秦皇岛市 秦皇岛市
河北省 邯郸市 邯郸市
河北省 邢台市 邢台市
河北省 保定市 保定市
河北省 张家口市 张家口市
河北省 承德市 承德市
山西省 山西省 山西省
内蒙古自治区 内蒙古自治区 内蒙古自治区
辽宁省 辽宁省 辽宁省
吉林省 吉林省 吉林省
$ cat get_ssx.sh
awk '
function chk(){
while((m1-n1)*1000+m2-n2>=0){
if(!d[n1]++)
print a[1,n1],a[1,n1],a[1,n1];
if(!d[n1,n2]++)
if(a[2,n2]!=""&&a[1,n1]!=a[2,n2])
print a[1,n1],a[2,n2],a[2,n2];
if(n2 > c[2])++n1;
if(b[2,++n2] > n1){
++n1;
}
}
}
function x(){
if(b[3,m3])m2=b[3,m3];
if(b[2,m2])m1=b[2,m2];
chk();
print a[1,m1],a[2,m2],a[3,m3]
}
{
k=ARGIND;
a[k,$1]=$2;
b[k,$1]=$3;
c[k]=FNR
}
END{
n1=1;
for(m3=1;m3<=c[3];++m3)
x();
m1=c[1];
m2=c[2];
chk();
}' sheng.txt shi.txt xian.txt
$ grep . sheng.txt shi.txt xian.txt
sheng.txt:1 北京市
sheng.txt:2 天津市
sheng.txt:3 河北省
sheng.txt:4 山西省
sheng.txt:5 内蒙古自治区
sheng.txt:6 辽宁省
sheng.txt:7 吉林省
sheng.txt:8 黑龙江省
shi.txt:1 北京市 1
shi.txt:2 天津市 2
shi.txt:3 石家庄市 3
shi.txt:4 唐山市 3
shi.txt:5 秦皇岛市 3
shi.txt:6 邯郸市 3
shi.txt:7 邢台市 3
shi.txt:8 保定市 3
shi.txt:9 张家口市 3
shi.txt:10 承德市 3
xian.txt:1 东城区 1
xian.txt:2 西城区 1
xian.txt:3 崇文区 1
xian.txt:4 宣武区 1
xian.txt:5 朝阳区 1
xian.txt:6 丰台区 1
xian.txt:7 石景山区 1
xian.txt:8 海淀区 1
xian.txt:9 门头沟区 1
xian.txt:10 房山区 1
|
|