You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从日志文件提取committed属性值?寻求更简便方案

提取日志中committed对应数值的简便方案

当然有更简便的办法!针对你日志里的格式,这里有几个直接一步到位的awk命令,不用额外处理:

方法1:使用正则捕获组(最精准,不受字段位置影响)

这个方法通过正则匹配committed=后面的数字部分,不管它在整行的哪个位置都能提取:

awk '{print gensub(/.*committed=([0-9]+)KB\)/, "\\1", "g")}' file.txt
  • 原理:gensub是awk的正则替换函数,([0-9]+)捕获我们需要的数字,\\1引用这个捕获到的内容,直接输出纯数字。

方法2:自定义字段分隔符

把=、)、,和空格都设为分隔符,直接定位到目标数值:

awk -F '[=,) ]+' '{print $6}' file.txt
  • 原理:-F '[=,) ]+'指定多个分隔符,拆分后committed对应的数值就是第6个字段,直接打印即可。

方法3:对原结果做快速替换

如果你想基于原来的命令改进,只需要在awk里直接处理$4:

awk '{sub(/committed=/, "", $4); sub(/KB\)/, "", $4); print $4}' file.txt
  • 原理:先用sub去掉$4里的committed=前缀,再去掉末尾的KB)后缀,剩下的就是你要的纯数字。

这几个方法都能直接输出1728469,不用额外管道处理~

内容的提问来源于stack exchange,提问作者Carla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 07:08:14