【问题标题】:Sorting using Ack Grep Linux使用 Ack Grep Linux 进行排序
【发布时间】:2015-06-03 07:57:22
【问题描述】:

我有这个格式的文件:

ID:10Time:[12:55:28.156452]
ID:11Time:[12:55:28.156542]
ID:12Time:[12:55:28.157418]
ID:13Time:[12:55:28.157446]
ID:14Time:[12:55:28.167463]
ID:15Time:[12:55:28.167490]
ID:16Time:[12:55:28.176210]

我想根据大括号中的时间戳值对该文件进行排序。 我是这方面的初学者,我想这会给我一个开始。

【问题讨论】:

标签: c++ linux sorting


【解决方案1】:

使用带有 -kn 标志的排序

sort -k2 file

【讨论】:

  • 不,它什么也没做。我也想根据时间戳对行进行排序。
  • @Hiesenberg,你想要什么输出格式?举个例子?
  • ID:12Time:[12:55:28.157418] ID:11Time:[12:55:28.156542],时间戳最少的行应该在前。
  • ID 12 的时间戳是 157418,大于 156542,是 ID 11 的哪个时间戳。要反向排序?使用 -r 标志:“排序 -k2 -r 文件”
【解决方案2】:

您可以使用sort 实用程序对文件进行排序:

sort -t'[' -k2 infile.txt > outfile.txt

您可以根据您使用-k--key 指定的一个或多个键对行进行排序。该值是指列号,从 1 开始。通常,列之间用空格分隔,但 -t 可以指定自定义字段分隔符。

【讨论】:

    【解决方案3】:

    sort -t':' -k3 inputfile

    -t 指定字段分隔符,-k3 表示将根据由第三个到最后一个字段组成的键对行进行排序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 2021-03-30
      • 1970-01-01
      • 2015-02-05
      • 2015-12-24
      • 2013-04-23
      • 1970-01-01
      相关资源
      最近更新 更多