我正在尝试在 Linux 中格式化以下文本文件。你能建议什么是实现我的输出的最佳方法吗?
输入文字
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 1
[2017-02-03 14:23:45,066] - Message 1
[2017-02-03 14:23:46,066] - Message 1
[2017-02-03 14:23:47,066] - Message 1
Trailer | Trailer Identifer
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 2
[2017-02-03 14:23:45,066] - Message 2
[2017-02-03 14:23:46,066] - Message 2
[2017-02-03 14:23:47,066] - Message 2
Trailer | Trailer Identifer
我正在尝试生成的输出
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 1
Trailer | Trailer Identifer
Header| Header Identifier
[2017-02-03 14:23:44,066] - Message 2
Trailer | Trailer Identifer
提前致谢!
更新:我不想在这里删除重复项,我想保留时间戳最少的记录并删除其他记录。
最佳答案
有一个 bash 命令:uniq
。输入命令:
uniq -f3 file
您很幸运,该命令仍然适用于您的用例,无需使用 awk 进行编程。我引用了手册页的一部分:
uniq 过滤来自 INPUT(或标准输入)的 adjacent 匹配行,写入 OUTPUT(或标准输出)。
选项 -f3 避免比较前 3 个字段。
关于linux - 在 linux shell 中将我的输入文本转换为输出的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021384/