本文共 1437 字,大约阅读时间需要 4 分钟。
目的把第四列的areacode 提取出来放到第三列把余下的部分放第四列,第四列有多种形式本地号码不带区号的,外地号码带区号的
外地号码带17909+区号+(固定电话号码)/(手机号码),17908 ip卡,179690+手机号码,0+手机号码等
文件内容形如:以tab分割共8列 noarc04.txt
/*0874 8793865 0 8793419 2006-04-1909:11:39 51 2006-04-1909:12:30 13040874 5657527 0 13769775640 2006-04-1821:42:46 39 2006-04-1821:43:25 13040874 8793277 0 13408748444 2006-04-1821:39:05 652 2006-04-1821:49:57 13040874 8793865 0 13769687343 2006-04-1909:14:01 90 2006-04-1909:15:31 13040874 5763248 0 5761247 2006-04-1909:18:39 26 2006-04-1909:19:05 13040874 4050528 08583453433 2006-04-2413:36:45 15 2006-04-2413:37:00 13030874 4050528 08583457433 2006-04-2413:37:29 9 2006-04-2413:37:38 13030874 4050528 08583457433 2006-04-2413:38:11 9 2006-04-2413:38:20 13030874 4050528 08583457433 2006-04-2413:34:57 15 2006-04-2413:35:12 13030874 6618988 13408724542 2006-04-0621:43:15 7 2006-04-0621:43:22 1304*/#cmdline
awk -F '/t' -f tl.awk noarc04.txt |more#awk source
BEGIN { my3=0 ;#定义两个临时变量以便于最后打印修改后的数据my4=0 ;}{ if($4 ~/^179/)#如果第四列以179开头{ if($4 ~/^17908/) { my3=17908 ; my4="" ; }else if ($4 ~179690) { my3=179690 ; my4=substr($4,7,11); }else { my3=substr($4,1,9) ; my4=substr($4,10,11) ; }}else if($4 ~/^013/){ my3=0 ; my4=substr($4,2,11) ;}else if($4 ~/^02/){ my3=substr($4,1,3); my4=substr($4,4,11);}else if($4 ~/^0/){ my3=substr($4,1,4); my4=substr($4,5,11);}else{ my3=$3 ;my4=$4 ;}printf("%s/t%s/t%s/t%s/t%s/t%s/t%s/t%s/n",$1,$2,my3,my4,$5,$6,$7,$8);}
转载地址:http://lskmi.baihongyu.com/