首页 > 解决方案 > 使用终端过滤日志文件中的多个单词

问题描述

我有很多行的文件。

12.26.20 11 record[71] dataset[12] message[17] end[19]
12.26.20 11 record[72] dataset[12] message[20] end[21]
12.26.20 11 record[73] dataset[0] message[22] end[30]
12.26.20 11 record[74] dataset[12] message[31] end[33]

我需要得到类似的东西:

11 record 12 17-19
11 record 12 20-21
11 record 12 31-33

我怎样才能在终端中做到这一点?

标签: terminalgrep

解决方案


awk 是一个很好的工具:

awk -F[\]\[" "] '$7 == 12 { print $2" "$3" "$7" "$10"-"$13 }' file

使用空格 [ 和 ] 分割文件中的行,然后以第 7 个字段等于 12 时所需的格式打印相关的分隔字段。


推荐阅读