文本处理工具之awk

awk是一个文本处理工具,也是一中脚本语言。我常使用的就是下面的两个功能。

基本格式:

awk -F [str] ‘BEGIN{comand1}{commad2}END{command3}’ filename

  • -F 后面的跟的是分割符号,可以是一个字符,也可以是字符串.

  • 中间的命令必须用单引号括起来

  • BEGIN表示开始循环开始前执行的命令,执行一次

  • END表示循环结束后执行的命令,执行一次

  • commnad2表示每处理一行,就执行一次

  • BEGIN和END可以省略

参加下面的实例:

过滤

<RedisCommandWithOutReplyValue> Failed to execute command:LPUSH, key:PROC|FAST|109, value:call AddLottery(13940887,149,464,129868120,9,'269,1037,781,525,1035',129868120,0);
## 以上是一行错误日志,test.txt中有大量的这样格式的日志,但是我仅需要过滤出AddLottery后的第1个和第4个数字。命令如下:
awk '{print $8}' test.txt |awk -F ',' '{printf  "%s,%s\n",$1, $4}'|awk -F '(' '{print $2}'
输出:
13940887,129868120

统计

接着上面的日志,假设还有一个需求:

对上面输出的结果,第一个数字要累加求和:

sum.txt 内容如下:
13940887,129868120
13940882,129868122
13940880,129868121
命令:
awk -F ',' 'BEGIN{sum=0;}{sum+=$1;}END{print sum}' sum.txt
输出:
41822649
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值