按date字段在bash中sorting日志

让我们

126 Mar 8 07:45:09 nod1 /sbin/ccccilio[12712]: INFO: sadasdasdas 2 Mar 9 08:16:22 nod1 /sbin/zzzzo[12712]: sadsdasdas 1 Mar 8 17:20:01 nod1 /usr/sbin/cron[1826]: asdasdas 4 Mar 9 06:24:01 nod1 /USR/SBIN/CRON[27199]: aaaasdsd 1 Mar 9 06:24:01 nod1 /USR/SBIN/CRON[27201]: aaadas 

我想按date和时间键sorting这个输出。

非常感谢你。

马丁

对于gnu排序: sort -k2M -k3 -k4

你可以使用sort命令:

 cat $logfile | sort -M -k 2 

这意味着:按月份(-M)从第二列开始排序(-k 2)。

天需要数字(不是词法)排序,所以它应该sort -s -k 2M -k 3n -k 4,4

在这里看到更多细节。

小题外话 – 但无论如何。 只有在文件树中工作时才有用

 ls -l -r --sort=time 

从这里你可以创建一个单一的行,例如删除城中最古老的备份。

 ls -l -r --sort=time | grep backup | head -n1 | while read line; do oldbackup=\`echo $line | awk '{print$8}'\`; rm $oldbackup; done;