linux问题 使用awk命令处理以“|”分割的变长文件时,由于其中某些字段存 ...

发布网友 发布时间:2022-04-23 02:34

我来回答

3个回答

懂视网 时间:2022-05-03 12:26

场景:自己搭建了个zabbix,在通过agent脚本监控mysql8.0时,出现了报错:awk: cmd. line:1: (FILENAME=- FNR=1) fatal: division by zero attempted

对应sql的配置情况如下,该sql是获取的binlog日志文件的序号:
技术图片

执行结果发现报错了
技术图片

于是怀疑是否是sql命令结果本身的异常,于是去掉了awk命令部分,重新执行一遍发现sql执行是正常,但为什么会出现这样的问题呢?
技术图片

冷静地思考了下,sql本身肯定是没问题的,是awk切割的时候出的问题,那怎么样处理才能得到我要的结果呢。。

这时忽然想到我之前都是从前面切割的,那这次我从后面把想要的数据进行切割看看。
技术图片

于是重新调整了awk切割过程,最终成功把binlog日志文件序号切割出来了。
技术图片

虽然这次没有从正面解决awk报错,但从侧面解决了问题,也达到我要的结果,解决问题的思路还是很重要的。

awk脚本切割数据库8.0命令结果时出现报错

标签:没有   重要   binlog   filename   sql   情况   监控mysql   通过   alt   

热心网友 时间:2022-05-03 09:34

先想办法吧你的乱码搞好吧,既然你已经指定了|为分隔符,那么他肯定是按照|进行分割的

热心网友 时间:2022-05-03 10:52

将源文件编码转为UTF-8格式后再交付awk处理。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com