【问题标题】:Sort using awk?使用awk排序?
【发布时间】:2011-07-15 04:55:50
【问题描述】:

我有一个以字符串开头的文件,如下所示

x1, 1, 2, ...

x2, 1, 2, ...

x10, 1, 3, ...

x22, 1, 3, ...

x14, 1, 2, ...

可以使用 awk 对该文件进行排序,以便我得到按数字排序的输出,例如以 x1 开头的行,然后是 x2,.. 等等?

【问题讨论】:

  • 我尝试使用 sort -n,但它给了我 x10、x1 等。我做错什么了吗?
  • 如果您的sort 版本支持,请使用sort -Vsort --version-sort。如果不是并且您的前缀始终是相同的长度(例如“x”是一个字符),请尝试sort -k1.2n -t,

标签: sorting text awk


【解决方案1】:

如果像丹尼斯所说的那样,您的前缀是固定宽度的,请尝试使用:

sort -k 1.2 -g -t, 

就我而言,使用 Mac OS X 附带的排序,我必须使用 -g 开关。

【讨论】:

  • 我尝试使用此选项。我只是想知道您是否可以解释这些选项的工作原理?我尝试阅读手册页,但它不是很有启发性。
  • 选项 -k 允许您从行首跳过一些图表,然后开始排序。 -k 1.2 实际上意味着在第一个字段的第二个字符之后开始排序。在这种情况下,每个字段都是一个以逗号分隔的值。 -t, 表示字段分隔符是“,”。 -g 表示按数字排序(我猜是按字母顺序排序)。
猜你喜欢
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
  • 2013-05-19
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多