zoukankan      html  css  js  c++  java
  • linux awk 使用的一个例子

    1. 场景

      从日志中获取漏发奖励的司机id

    2. 日志 如下(需要获取一个时间段的 driverIdStr)

    15:13:34.484 INFO  [DubboServerHandler-10.0.30.43:20899-thread-5] order.service.TOrderInfoServiceImpl:1654  -  调用支付完成登记接口,URL=http://rocky/tOrderHandle/settleTaxiAccount,参数={"phone":"1865558888","cityIdStr":"44","customerIdStr":"4433","driverIdStr":"56398","orderTimeStr":"2018-01-19 14:56:36","activityFlagStr":"2","serviceType":35,"orderPriceStr":"14.00","orderId":"53743"}

     3. 过滤出相关日志  继续处理

    cat 19.log |grep 'settleTaxiAccount,参数='|awk -F '"driverIdStr":' '{print $2}'|awk -F '[,"]+' '{print $2}' > driverId_19.log #一天的 截取的司机id重定向到 文件中

    cat driverId_19.log driverId_20.log |sort|uniq -u > driverId_uniq.log #将多日的司机id 排序 去重 再重定向到结果文件

    mysql balabala...  #导出已有司机id

    comm -23 driverId_uniq.log driver_done.txt # 去除 已有的  -2 不显示在第二个文件中出现的内容; -3 不显示同时在两个文件中都出现的内容;-1:不显示在第一个文件中出现的内容 ;

    4. sed 一把

    cat 19.log 19_1.log  20.log  20_1.log|grep '"cityIdStr":"44"' |grep 'driverIdStr'|sed 's/.*"driverIdStr":"//g'|sed 's/".*$/ /g'|sort|uniq -u > driver_id2.txt

    5. 20180524

    今天遇到从字符串中摘出文案的小需求(双引号里的文字)

    我想到了awk

    好用!

     grep '过滤数单奖活动出错===>订单号' integral-error-xx.log integral-error-xx.log|awk -F ' ' '{print $1}'|awk -F '.' 'BEGIN {count=0;print "次数:"}  {if($3>"13:00:00"){count+=1}}  END {print count}'

  • 相关阅读:
    [CSAPP笔记][第九章虚拟存储器][吐血1500行]
    [CSAPP笔记][第六章存储器层次结构]
    [CSAPP笔记][第八章异常控制流][呕心沥血千行笔记]
    好吧,刚把CSDN搬家到博客园。。记录一发
    [CSAPP笔记][第二章信息的表示和处理]
    综合练习:词频统计
    组合数据类型综合练习:英文词频统计
    熟悉常用的Linux操作
    1.大数据概述
    语义分析
  • 原文地址:https://www.cnblogs.com/rocky-fang/p/8342261.html
Copyright © 2011-2022 走看看