2015-11-23 78 views
0

我遇到问题,不知您是否可以帮助我。我所要做的就是按小时元素对这些格式进行排序。但这个元素的格式如下:按字段排序UNIX

192.168.100.200 - unauthenticated 25/Sep/2015:18:52:18 -0500 
192.168.100.200 - unauthenticated 29/Sep/2015:14:20:41 -0500 
192.168.100.200 - unauthenticated 29/Sep/2015:14:43:16 -0500 

192.168.100.200 - unauthenticated 29/Sep/2015:14:44:04 -0500 
192.168.100.200 - unauthenticated 29/Sep/2015:15:30:50 -0500 
192.168.100.200 - unauthenticated 30/Sep/2015:13:53:04 -0500 
192.168.100.200 - unauthenticated 30/Sep/2015:14:07:48 -0500 

我已经通过字段进行排序14:07:48我已经读过我可以用这个排序是:

sort -t':'

但真正的问题是我有打印所有排序的行。

我希望你能帮助我。

问候

+1

是7行吗?空行是真的吗? – dawg

+0

查看侧边栏中的第一个“相关”问题https://stackoverflow.com/questions/357560/sorting-multiple-keys-with-unix-sort?rq=1了解更多关于如何告知'sort'什么排序上。 –

回答

0
sort -t: -nk2 

你想通过一个分隔符来排序,(-t :)数值(N),并使用第二密钥(K2)。

您可以在此之后调用文件名,或者对其进行管道操作。

1

您可以使用-k指定要排序的关键字段列表。如果要排序上的时间而忽略日期部分,你可以做到这一点,如:

sort -t: -k2,2 -k3,3 -k4,4 -n <input file> 

这将会对其他时间使用:作为标记分隔符,然后排序-n数值比较场2(小时),然后字段3(分钟)对其他分钟,然后字段4(秒和时区)对其他第四个字段。