2016-06-27 126 views
0

我有一个日志文件,我想对其中的数据进行排序,并在指定的startime和endtime之间打印数据。如何对日期进行排序并打印unix中的排序数据?

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"; 

但它显示文件中的所有数据。但我想在我提到的endtime停止它。有没有更好的办法? 在此先感谢。

+0

首先,它不排序正确。然后你需要在你的'sed'命令中使用方括号。 –

+1

'sort -n -k 1.5 -k 1.3 -k 1 logfile'即使输入不是按排序顺序,这个命令也给了我排序的输出。 – Vishwaroopa

回答

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 
+0

感谢您的答复。工作正常。 – Vishwaroopa

相关问题