AWK简介
AWK 是linux里一种处理文本文件的语言,是一个强大的文本分析工具。一般用于处理每行里特定列的数据
更多awk使用可参考 https://www.runoob.com/linux/linux-comm-awk.html
基本格式:
awk -F -v '{[pattern] action}' {filenames} # '{[pattern] action}'部分 只能用单引号包括着
参数说明:
日志处理实战
日志里的格式:
收集loss值和epoch值:
PS:实际收集什么数据,视实际情况而定
# 整体思路:以目标数值前后的关键字为分隔符,获取目标数值
# 以loss':g 为过滤条件grep获取loss所在行;
cat loss.txt | grep "'loss':"
#将第一步结果交给awk,第一次awk,以loss': 为分隔符,获取第2列,
cat loss.txt | grep "'loss':" | awk -F "loss': " '{print $2}'
#第二次以“,”为分隔符获取第1列,即目标数值 ,将结果重定向至新的文本当中
cat loss.txt | grep "'loss':" | awk -F "loss': " '{print $2}' | awk -F "," '{print $1}' > loss-new.txt
# 同理 以loss': 为过滤条件grep获取行;第一次awk,以epoch': 为分隔符,获取第2列,第二次以}为分隔符获取第1列,即目标数值
cat loss.txt | grep "'loss':" | awk -F"epoch':" '{print $2}' | awk -F} '{print $1}' > loss-epoch.txt
将loss值和epoch值放在exel表内,制作成散点图。
日常总结