如何从日志输出中提取并打印指定列的所有值?
提取CSV日志中指定列的实用方法
刚好处理过类似的需求,给你几个简单好用的命令,直接就能提取日志里City列(包括标题行)的所有值:
方法1:用awk(推荐,适配带空格的分隔符)
你的日志里列之间是「逗号+空格」分隔的,用awk可以直接指定匹配这种分隔符,避免空格干扰:
awk -F ', *' '{print $3}' your_log_file.log
-F ', *':把分隔符设置为「逗号 + 任意数量的空格」,不管列前后有多少空格都能正确识别列位置$3:代表第3列,正好对应标题里的City
执行后就能得到你想要的输出:
City
NY
DALL
Sydney
如果你的日志是纯逗号分隔(没有空格),简化成这个命令就行:
awk -F ',' '{print $3}' your_log_file.log
方法2:用cut + sed组合
如果习惯用cut命令,可以先按逗号分割取列,再去掉开头的空格:
cut -d ',' -f3 your_log_file.log | sed 's/^ //'
cut -d ',' -f3:按逗号分割,提取第3列sed 's/^ //':去掉每一行开头的空格,处理日志里列前的空格问题
内容的提问来源于stack exchange,提问作者Nikhilesh
相关产品推荐
相关产品推荐

