我有一个日志文件,我想对其中的数据进行排序,并在指定的startime和endtime之间打印数据。
Logfile:
[10/04/16 02:07:20 BST] Data 1
[11/04/16 02:07:20 BST] Data 1
[10/05/16 04:11:09 BST] Data 2
[12/05/16 04:11:09 BST] Data 2
[11/06/16 06:22:35 BST] Data 3
[12/06/16 06:22:35 BST] Data 3
[11/07/16 11:07:30 BST] Data 3
[12/08/16 09:08:07 BST] Data 4
[22/08/16 09:08:07 BST] Data 4
我正在使用以下命令。
sort -n -k 1.5 -k 1.3 -k 1 logfile | sed -n "/[10/04/16 02:07:20 BST]/,/[12/05/16 04:11:09 BST]/p";
但它正在显示文件中的所有数据。但我想在我提到的结束时间停止它。有没有更好的办法? 在此先感谢。
答案 0 :(得分:1)
您必须转义括号以及日期部分中的斜杠。试试这个(适用于我的笔记本电脑):
sort -n -k 1.5 -k 1.3 -k 1 logfile | sed -n "/\[10\/04\/16 02:07:20 BST\]/,/\[12\/05\/16 04:11:09 BST\]/p"
输出:
[10/04/16 02:07:20 BST] Data 1
[11/04/16 02:07:20 BST] Data 1
[10/05/16 04:11:09 BST] Data 2
[12/05/16 04:11:09 BST] Data 2