terminal - 使用终端过滤日志文件中的多个单词
问题描述
我有很多行的文件。
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
我怎样才能在终端中做到这一点?
解决方案
awk 是一个很好的工具:
awk -F[\]\[" "] '$7 == 12 { print $2" "$3" "$7" "$10"-"$13 }' file
使用空格 [ 和 ] 分割文件中的行,然后以第 7 个字段等于 12 时所需的格式打印相关的分隔字段。
推荐阅读
- angular - 如何修复关于 agGrid 的“node_modules”中的“yarn build”错误?
- c# - c#Winforms中的分层树视图,带有大陆,国家,城市
- ios - 突然收到来自 CFNetwork/Darwin 的大量请求
- r - 在 gWidgets2 中切换 gbutton
- xml - 需要使用 Powershell 编辑 XML 文件
- c# - 如何更改数据网格视图中的按钮颜色?
- google-bigquery - Connection::SQLGetInfoW: [Simba][ODBC] (11180) 找不到 SQLGetInfo 属性:1750
- perl - 如何从 txt 中提取特定日期时间的 5 分钟记录?
- javascript - 如何从 ES6 模块导入默认和命名
- c++ - 在附加控制台中输入文本时如何避免“不被识别为内部或外部命令、可运行程序或批处理文件”?