awk 提取用户areacode的例子

原创 2006年06月01日 14:35:00

目的把第四列的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 1304
0874 5657527 0 13769775640 2006-04-1821:42:46 39 2006-04-1821:43:25 1304
0874 8793277 0 13408748444 2006-04-1821:39:05 652 2006-04-1821:49:57 1304
0874 8793865 0 13769687343 2006-04-1909:14:01 90 2006-04-1909:15:31 1304
0874 5763248 0 5761247 2006-04-1909:18:39 26 2006-04-1909:19:05 1304
0874 4050528  08583453433 2006-04-2413:36:45 15 2006-04-2413:37:00 1303
0874 4050528  08583457433 2006-04-2413:37:29 9 2006-04-2413:37:38 1303
0874 4050528  08583457433 2006-04-2413:38:11 9 2006-04-2413:38:20 1303
0874 4050528  08583457433 2006-04-2413:34:57 15 2006-04-2413:35:12 1303
0874 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);
}

 

利用awk命令提取字符串中的所有数字

利用awk命令提取字符串中的所有数字
  • xiaobaiing
  • xiaobaiing
  • 2015年05月29日 13:49
  • 4903

shell 脚本完成对日志文件的提取之awk 学习

前言 学习awk/sed/zmore/zgrep、istat 正文 1.awk  awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理(awk是一个强...
  • u011018979
  • u011018979
  • 2015年10月28日 16:38
  • 2463

shell脚本抽取制定字符串、grep+awk+cut+sed

在linux中经常要对一些动态的文本文件抽取指定的字符串,比如执行ps命令后想要获取指定的运行进程(如ps自己)的PID号(同一个进程每次启动的时候pid号是随机分配的)。该怎么办呢?当然,可以用一些...
  • zhangfn2011
  • zhangfn2011
  • 2014年10月08日 10:52
  • 8290

awk使用手册详解_有例子

  • 2011年11月17日 14:59
  • 388KB
  • 下载

awk用法__都是例子

  • 2010年06月30日 10:27
  • 28KB
  • 下载

Linux 中 sed 和 awk 命令常用例子

sed 主要是对行的处理,awk 主要是对列的处理   sed 查找和编辑文本,是一个字符流编辑器,可以很好地完成对多个文件的一系列编辑工作  必须通过行号或正则表达式指定要改变的文本行 执行...
  • N199109
  • N199109
  • 2013年03月21日 16:25
  • 990

awk 例子 (copied)

来源:http://www.cnblogs.com/xupeizhi/archive/2012/07/23/2605371.html linux_awk小例子 集群为什么那么慢...
  • u012474286
  • u012474286
  • 2014年03月05日 13:49
  • 657

awk学习--例子篇

转自:chinaunixawk例子参考:精确匹配awk ‘$3==“48” {print$0}’ grade.txtawk ‘$0 !~ /Brown/’ grade.txtawk ‘$4!=“Bro...
  • justheretobe
  • justheretobe
  • 2011年07月03日 23:36
  • 471

awk的3个例子(成长篇)

一,类似数据库中的left join查询 [root@krlcgcms01 mytest]# cat a.txt //a.txt 111 aaa 222 bbb 3...
  • jiedushi
  • jiedushi
  • 2011年10月26日 10:40
  • 652

awk与sed:一个关于多行处理的例子

前几天在CSDN上看到一个帖子http://bbs.csdn.net/topics/390848841,楼主贴了下面的问题: 例:123456789012345678901234567890...
  • Windeal
  • Windeal
  • 2014年09月17日 15:53
  • 1923
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:awk 提取用户areacode的例子
举报原因:
原因补充:

(最多只允许输入30个字)