linux - 合并和排序日志文件 - 多行
问题描述
我在一个目录中有多个日志文件,我需要根据日期对它们进行合并和排序。
我想在 bash/shell 中执行此操作,因为我需要在现有脚本中执行此操作。
有些消息打印在多行上
每条消息都以日期开头(2021-06-29 10:31:26)
2021-06-29 10:31:26 message Log1 example -line 1^M
Second line of message
2021-06-29 10:31:25.437839 PID29559 message Log2 example
解决方案
试试这个
cat 1 2 3 >merge;grep -E -i -w "[0-9]{4}-[0-9]{2}-[0-9]{2}" merge|sort
解释
这是具有多行的文件 3 的内容
2022-02-10
2022-02-11 dhqwiodhiqowdhqwdh
这是 1 2 3 文件的内容(通过 cat)
cat 1 2 3
2020-12-24
2021-02-23 djiowdhiwod
2022-02-10
2022-02-11 dhqwiodhiqowdhqwdh
运行整个命令后的输出 ( cat 1 2 3 >merge|grep -E -i -w "[0-9]{4}-[0-9]{2}-[0-9]{2}" merge|sort
)
2020-12-24
2021-02-23 djiowdhiwod
2022-02-10
2022-02-11 dhqwiodhiqowdhqwdh
cat:将显示所有内容然后合并。
grep:将挑选出所有带有日期的行
sort:将相应地对消息进行排序
推荐阅读
- r - 将数据框导出到 R 中的文本文件
- python - ImportError:在 ImageAI 视频对象检测期间无法从“keras.utils.generic_utils”导入名称“LazyLoader”
- javascript - 如何解决自定义元素错误,当我尝试在 vue.js 中的组件之间切换时出现此错误?
- python - 无法在 Python 中解析 XML 文件 - xml.etree.ElementTree.ParseError
- android - 了解垃圾收集器日志颤动
- angular - 如何在 Keycloak Angular 的新选项卡中打开帐户管理
- pdf - 如何从pdf中提取部分并将它们合并为一个pdf
- python - 按 ID 有效地将数据结构化为系列
- javascript - 增加通知显示间隔
- python - 从 gmail api 对象获取用户个人资料照片