让我们拥有
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
我想按日期和时间键对此输出进行排序。
非常感谢。
马丁
答案 0 :(得分:33)
对于GNU排序:sort -k2M -k3n -k4
-k2M
按月逐列排序(这种方式“三月”出现在“四月”之前)-k3n
在数字模式下按第三列排序(以便“9”出现在“10”之前)-k4
按第四列排序。 查看更多详情in the manual。
答案 1 :(得分:6)
天需要数字(不是词法)排序,因此它应该是sort -s -k 2M -k 3n -k 4,4
查看更多详情here。
答案 2 :(得分:5)
有点偏离主题 - 但无论如何。仅在filetrees中工作时才有用
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;
答案 3 :(得分:3)
您可以使用sort命令:
cat $logfile | sort -M -k 2
这意味着:从第二列(-k 2)开始按月(-M)排序。