.sh 方式调用awk及一些常规信息处理

awkshtest.sh 内容如下:
#!/bin/sh
awk -F, 'BEGIN{OFS=",";print "......解析文件开始........"} END{print "......解析文件结束......"}
ARGIND==1{a[$1]=$1} #将t_mobile.txt漫游用户存入数组 a中
ARGIND==2{b[$1]=$1} #将t_plan_user.txt漫游用户存入数组b中
ARGIND>2{
if(0 == (match(tolower($1),/.*(\.gif|\.png|\.jpeg|\.bmp|\.def|\.jpg|\.css|\.ico|\.cur|\.swf|\.js|\.txt|\.avi|\.xml|\.zip|\.cab|\.crl|\.mp3|\.tpt|\.fcg|\.lrc|\.action|\.rar|\.m4a|\.idx|\.exe|\.dll|\.ini|\.vbs|\.doc).*/))){
#print "......清洗图片完成......";
if(substr($1,1,7) in a){
#print "......清洗漫游用户完成......";
if($1 not in b){
#print "......清洗无线上网卡用户完成......";
if($5==200 || $5==201 || $5==204 || $5==205){
#print "......清洗公有协议完成......";
#将URL地址按 / 折分,并存入url数组中
split($25,url,"/");
if(length(url) >4){
if(url[1]=="http:" || url[1]=="HTTP:"){
#print "......解析URL 带 HTTP头.....";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],substr($25,8,length($25)-8) >> "page.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],substr($25,length(url[3])+8,length($25)-length(url[3])+8) >> "value.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],url[4] >> "leve_1.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],url[5] >> "leve_2.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[3],url[3] >> "domain.txt";
}else{
#print "......解析URL 不带 HTTP头......";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],$25 >> "page.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],substr($25,length(url[1]),length($25)-length(url[1])) >> "value.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],url[1] >> "domain.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],url[2] >> "leve_1.txt";
print strftime("%Y%m%d%H%M%S")$1NR+100000000,url[1],url[3] >> "leve_2.txt";
}
}
}
}
}
}
}' t_mobile.txt t_plan_user.txt *.txt

三个以上文件处理,t_mobile.txt 需要过滤的数据1,t_plan_user.txt 需要过滤的数据2,*.txt具体要处理的数据

其中数据1和数据2的格式为:
数据1:
1389574671*
1389574671*
1389574671*
1389574671*
1389574671*
数据2:
1389574*
1389574*
1389574*
1389574*
其中*带表具体数字
ARGIND=1 当读取第一个文件时,将第一个文件中的 $1列,存入数据 a 中
ARGIND=2 当读取第二个文件时,将第二个文件中的 $1列,存入数据 b 中
ARGIND>2 当处理文件从第三个开始,开始比较第三个以后的文件中与 a,b数组中的数据信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suncf1985

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值