求shell排序命令一条 如下文本按时间sort

2024-12-03 22:09:52
推荐回答(3个)
回答(1):

sort file.txt >new.txt

这样就是按时间从早到晚排序。

若要将最新的时间放在最上面,加个-r选项即可

sort -r file.txt >new.txt

默认比较顺序就是从前往后依次比较的,所以若文本中时间前面的内容都是一样的(这里我看都是aabb),直接sort就行。

回答(2):

[root@localhost ~]# cat file
aabb 2013-07-09 09:27:42 cc dee
aabb 2013-07-11 01:27:42 cc dee
aabb 2013-07-09 09:27:40 cc dee
aabb 2013-07-01 02:27:40 cc dee

#根据日期和时间排序
[root@localhost ~]# cat file | sort
aabb 2013-07-03 09:27:40 cc dee
aabb 2013-07-09 09:27:40 cc dee
aabb 2013-07-09 09:27:42 cc dee
aabb 2013-07-11 01:27:42 cc dee
aabb 2013-07-12 01:27:42 cc dee

#根据时间排序
# for i in `cat file | awk '{print $3}' | sort | uniq `
> do
> cat file | grep $i
> done
aabb 2013-07-11 01:27:42 cc dee
aabb 2013-07-12 01:27:42 cc dee
aabb 2013-07-09 09:27:40 cc dee
aabb 2013-07-03 09:27:40 cc dee
aabb 2013-07-09 09:27:42 cc dee

回答(3):

sort -k2,3 文件名