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

请高手来帮我看一下这个shell脚本

    来源: 互联网  发布时间:2016-08-05

    本文导语:  #!/bin/sh billpath=/home/infox/test temppath=/home/infox touch $temppath/tempresult.txt cd $billpath for ifile in * do     count=0     awk -F, '{if ($2 ~/60/) {count='expr $count+1'}}'      printf $count,",",$FILENAME,"n" >> $temppath/tempresult.txt done ...

#!/bin/sh

billpath=/home/infox/test
temppath=/home/infox

touch $temppath/tempresult.txt
cd $billpath
for ifile in *
do
    count=0
    awk -F, '{if ($2 ~/60/) {count='expr $count+1'}}' 
    printf $count,",",$FILENAME,"n" >> $temppath/tempresult.txt
done

sort -t: +1 $temppath/tempresult.txt > $temppath/temp.txt
flag=0
awk -F, '{if ($flag -eq 1) {exit 0} flag='expr $flag+1';rm $temppath/tempresult.txt;rm $temppath/temp.txt}'

把每个文件里面第二个字段是60 的记录统计下来,然后把该文件名和记录条数放到临时文件里面。我把这个临时文件排序,然后读出临时文件里面的第一条记录。。。为什么不行呢……

拜托各位大虾!!!!

|
总结一下你的帖子以及QQ上的留言,我猜测你的需求是这样的:
1. /home/infox/test目录下有多个文件,每个文件有多行记录,每个记录有多个字段,字段直接用','分隔(根据awk -F,);
2. 统计所有文件第二个字段为60或62的行数,并以"行数,文件名"的格式输出到临时文件中(根据printf $count,",",$FILENAME,"n" >> $temppath/tempresult.txt);
3. 根据行数对临时文件进行从小到大排序,因为在(2)中输出的临时文件用逗号(,)做分隔符,而你在sort命令中(sort -t: +1 $temppath/tempresult.txt)用冒号(:)做间隔符,不晓得是你笔误还是什么。
4. 仅输出第一行

简言之就是“输出第二个字段为60或62行数最小行数以及文件名”

这不需要脚本,直接在shell中执行:
egrep -c '^[^,]*,6[02](,.*)?$' * | sort | awk -F: 'NR==1{print $2","$1}'
其中 egrep -c 'pattern' * 的作用就是输出每个文件的中匹配正则表达式pattern的行数,格式是“文件:行数”;
正则表达式 ^[^,]*,6[02](,.*)?$ 的意思是匹配第一个和第二个逗号(,)之间是60或62,即以逗号为分隔符第二个字段是60或62;
然后把结果给sort排序,最后给awk,这里需要调整格式,egrep输出的格式是“文件:行数”,你的格式是“行数,文件”,所以,awk的作用是调整格式,以及仅仅输出第一行(NR==1)

    
 
 

您可能感兴趣的文章:

  • 求高手给写一个bash脚本,功能很简单,就是去执行某一个php脚本
  • 脚本达人。脚本高手进来看看。。求解
  • 高手进来,用户登录后马上执行一个脚本,如何做?
  • 请高手帮忙想个shell脚本
  • 请教高手,一个简单的shell脚本问题???
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • 高手帮帮忙,SHELL脚本编程~~~~~~~~~~~~~~~~~~
  • shell脚本高手请进
  • cron一个脚本无法执行???请高手指点。。。。急。。。。。。。。。。。。。
  • Linux下脚本如何实现以下功能描述?求救高手脚本问题
  • 关于我对linux高手用yum,非高手用源码的理由 iis7站长之家
  • 求高手帮我写个ubuntu系统下远程关机的脚本
  • 高手救我,这段脚本什么错。
  • C调用shell脚本出现问题,在线等待求教高手
  • 求教脚本高手:如何解析如下文件
  • 虚心请教高手:如何用Shell脚本把文本文件中的所有换行符替换成"n"字符串?
  • 找高手:gdb脚本传递参数问题
  • ubuntu下求高手帮我写个远程关机.sh的脚本
  • 请教高手——shell脚本或sed问题,谢谢!
  • 求高手写一个shell脚本
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • 高手指点一下吧,shell里老多出一个'
  • 懂unix shell、oracle的高手,救命啊!!!
  • 求教高手,关于shell命令
  • shell程序,高手看一下啦。谢谢
  • LINUX SHELL下的图形问题----高手请进!
  • shell高手进
  • 还是shell-----------高手帮忙。。。。。。。。
  • 请问各位高手,如何在c shell中从标准输入读参数然后赋给一个变量啊
  • 一个linux shell编程求素数问题 高手帮帮忙啊
  • shell 编程 从0到10求和 ,代码有错,请高手看看
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈


  • 站内导航:


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

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3