当前位置:  技术问答>linux和unix

关于文本处理的脚本,请大侠过眼,100分赠送

    来源: 互联网  发布时间:2017-04-14

    本文导语:  请大侠帮我修改下代码: 源数据为30个文件,分别对应N个用户的30天的高峰并发 数据样子为 第一个文件,为5月2日的用户访问 用户       时间       当日高峰访问次数 90000031  20130502    315 90000032  ...

请大侠帮我修改下代码:
源数据为30个文件,分别对应N个用户的30天的高峰并发
数据样子为

第一个文件,为5月2日的用户访问
用户       时间       当日高峰访问次数
90000031  20130502    315
90000032  20130502    1
90000033  20130502    21

第二个文件,为5月3日的用户访问
用户       时间       当日高峰访问次数

70000001  20130502    221
90000031  20130503    301
90000032  20130503    1
90000033  20130503    13
90000034  20130503    88
90000035  20130503    30
90000036  20130503    168

第三个文件,为5月4日的用户访问,文件格式和前面的类似
每个文件的用户数目不一定相同,要求对有重复的用户数才计算高峰访问次数的变化率

----------描述结束--------

现在的目标是实现统计当天的用户访问变化率并排序,即把两天的访问次数做减法再除下前天的值,列如5月3日的变化率为,要减去5月2日的并发才能获取到差值
90000031  20130503    (301-315)/315
90000032  20130503    (1-1)/1
90000033  20130503    (13-21)/21
再将红色的按照次序排就可以排列出访问变化率了

我做的样子是,写了类似的脚本,运行./xxxx.sh    $No1           $NO2        $NO3                     
分为为 :                        脚本名称     前天时间参数    当天时间    前N名和用户排名
就可以得出某一天的用户访问变化率排名了

====下面是我写的脚本====
#!/bin/bash

 #判定输入参数是否达到要求并给出意见
 if [ -z "$3" ]
 then
 echo "输入参数不符合要求!"
 echo "请输入有效统计时间,格式为:./ranking NO1 NO2 NO3"
 echo "ranking:本次排名统计脚本名称"
 echo "NO1:前一天日期"
 echo "NO2:当天的日期"
 echo "NO3:控制统计的和用户数量"
 exit
 fi
 
 Yesterday=$1
 Today=$2
 Ranknum=$3
 file_dir=/home/tmp
 file_content=$(ls|grep -v default)
 cd ${file_dir}
 
 for file in ${file_content}
do
cd ${file_dir}
 if [ -f ${file} ]
 then
 ##Yesterday无法带入到awk中
#Yesterdaybingfa=`echo |awk '{if("$1"="${Yesterday}") print $5}' ${file}`


Yesterdaybingfa=`echo $file |grep ${Yesterday} | awk '{print $5}'`
Todaybingfa= `echo $file |grep ${Today} | awk '{print $5}'`
echo $Yesterdaybingfa
Rank=`echo |awk '{print $Yesterdaybingfa/$Todaybingfa-1}'` 
Name=substr($file,3,6)
#输出到当天的日志
echo '$Name $Rank' >>${Today}.log
done
#查询不同用户的访问变化率排行
cat ${Today}.log |sort |uniq |head -n ${Ranknum} >${Today}.log_${Ranknum}


|
Yesterdaybingfa=`awk -v y="$Yesterday" '{if($1=y) print $5}' ${file}`

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求一个关于文本转换脚本
  • 在LINUX下做文本处理的工作,一般是用SHELL脚本还是动态语言方便?
  • 求一段查询并替换文本字符的shell脚本
  • 请问如何用shell脚本将一个文本文件的某几行输入到另一个文件中。
  • 虚心请教高手:如何用Shell脚本把文本文件中的所有换行符替换成"n"字符串?
  • 想通过shell脚本编程实现:改写文本文件(完全改写和部分替换)
  • 如何使用shell脚本替换不确定文本信息?实例!
  • 新手请问,检查某个指定文件是否存在于opt目录下,如果存在则把该文件名保存到文本文件里,用Shell脚本如何写?请简写代码供参,谢谢。PM5
  • 浅析linux下如何用脚本自动发送文本mail邮件
  • 求助Linux脚本解析文本内容--几个细节不知如何实现
  • Shell脚本学习指南之文本处理工具
  • C++ Strings(字符串) 成员 append():在字符串的末尾添加文本
  • 在AIX的tmp目录下面,有很多个文本文件,现在要把每个文本文件里的一些信息提取出来,放在一个文本文件里!
  • linux bash shell命令:grep文本搜索工具简介
  • jquery 文本框回车事件 跳到下一个文本框
  • HTML5 <bdo> 标签:覆盖默认的文本方向
  • 在文本控件jtextpane中如何把“选中文本”事件屏蔽??
  • html5/css3文本阴影(text-shadow)详解及示例
  • 求助Linux脚本解析文本内容--几个细节不知如何实现 iis7站长之家
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 请问html中的文本输入框中如何实现静态的不可修改文本
  • HTML5 <b> 标签-定义粗体的文本
  • 能否在输入两个文本框时,第三个文本框自动等于前者之和
  • CSS控制长文本内容显示(截取的地方用省略号代替)
  • 用word2000将文档存为纯文本文件,所得文本文件不满足AScii标准?请教。
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问UNIX下的文本格式和DOS下的文本格式有什么区别呀?
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • 用户无法设定默认的系统文本编辑器。本地管理员如何协助该用户确定系统默认的文本编辑器?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 如何用Linux中的文本编辑工具提取文本文件中的指定内容?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,