我有这样的数据:
Jul29 16:52
Jul30 19:06
Jul31 17:04
Aug1 17:22
Aug2 18:53
Aug3 21:44
Aug4 22:56
Aug6 17:01
Aug8 02:19
Aug8 16:49
Aug9 16:37
Aug10 21:09
Aug12 05:24
Aug12 17:09
Aug14 16:39
Aug16 16:41
Aug4 22:56
Aug6 17:01
Aug8 02:19
Aug8 16:49
Aug9 16:37
Aug10 21:09
Aug12 05:24
Aug12 17:09
Aug14 16:39
Aug16 16:41
Aug4 22:56
Aug6 17:01
Aug8 02:19
Aug8 16:49
Aug9 16:37
Aug10 21:09
Aug16 20:24
Aug16 19:09
Aug16 18:39
Aug16 16:41
我想取出重复项,按第一列排序,然后保持该顺序并按第二列排序。如下所示:
Jul01 11:00
Aug01 12:00
Aug02 12:40
Aug03 10:00
Aug03 11:00
Aug03 13:00
我有以下代码: 猫文件名| awk'!a [$ 0] ++' 这只会对第一列进行排序,而第二列会发生随机变化。有什么想法吗?
当我尝试cat ming | sort -k1M -k1d -k2V
时,我得到了:
Jul29 16:52
Jul30 19:06
Jul31 17:04
Aug10 21:09
Aug10 21:09
Aug10 21:09
Aug1 17:22
Aug12 05:24
Aug12 05:24
Aug12 17:09
Aug12 17:09
Aug14 16:39
Aug14 16:39
Aug16 16:41
Aug16 16:41
Aug16 16:41
Aug16 18:39
Aug16 19:09
Aug16 20:24
Aug2 18:53
Aug3 21:44
Aug4 22:56
Aug4 22:56
Aug4 22:56
Aug6 17:01
Aug6 17:01
Aug6 17:01
Aug8 02:19
Aug8 02:19
Aug8 02:19
Aug8 16:49
Aug8 16:49
Aug8 16:49
Aug9 16:37
Aug9 16:37
Aug9 16:37
答案 0 :(得分:4)
sort -u -k1.1,1.3M -k1.4n -k2V filename
删除重复的行
在月份模式下将单词1,字符1到单词1,字符3的每一行排序
用数字值对单词1,字符4到单词1末尾的每一行进行排序
在“版本号”模式下对第二个单词进行排序,这对于时间戳来说效果很好
答案 1 :(得分:1)
您可以使用以下内容:
sort -k1M -k1.4n -k2V abcss | uniq
说明:
k1M
:在第一列上进行一个月的排序
k1.4n
:进行数字排序以按顺序获取列
k2V
:在第二列上进行版本排序以获取正确的时间戳
输出将是:
Jul29 16:52
Jul30 19:06
Jul31 17:04
Aug1 17:22
Aug2 18:53
Aug3 21:44
Aug4 22:56
Aug6 17:01
Aug8 02:19
Aug8 16:49
Aug9 16:37
Aug10 21:09
Aug12 05:24
Aug12 17:09
Aug14 16:39
Aug16 16:41
Aug16 18:39
Aug16 19:09
Aug16 20:24