如何用Bash命令从当月轮转日志中获取第3列最大值
定位当月日志文件并提取第三列最大值的Bash命令
直接用这条命令就能完成需求:
awk '{print $3}' transc-$(date +%y%m).log | sort -n | tail -n 1
命令拆解
date +%y%m:自动生成当前年份后两位+月份的字符串(比如2023年3月会输出2303),刚好匹配你的日志文件名格式transc-YMM.logawk '{print $3}' 文件名:精准提取日志文件中的第三列内容sort -n:对提取出的数字做数值排序(避免字典序排序导致的100排在20前面的错误)tail -n 1:取排序结果的最后一行,也就是第三列的最大值
验证示例
用你提供的日志内容,假设当前是2023年3月,对应日志文件transc-2303.log,执行命令后会输出87,和预期完全一致。
补充优化
如果日志中存在第三列不是纯数字的行,可以加上过滤逻辑确保只处理有效数据:
awk '$3 ~ /^[0-9]+$/ {print $3}' transc-$(date +%y%m).log | sort -n | tail -n 1
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

