使用子字段对 csv 文件进行排序

使用子字段对 csv 文件进行排序

我有 1 个 csv 文件,空间分隔,

Jan_high 32 123
Febr_low 19 139
March_high 12 63
Jan_low 36 18
Febr_high 87 99
March_low 83 77

如何根据_high然后_low字符串第一列对其进行排序?我无法使用,sort -k1.5因为字符串高或低不是从固定字符位置开始的。有人有想法吗?

答案1

使用-t '_' -k2withsort会将sort输入视为以_字符而不是空格分隔,然后对第二个字段(以 或 开头的字段high)进行排序low

$ sort -t '_' -k2 file
March_high 12 63
Jan_high 32 123
Febr_high 87 99
Febr_low 19 139
Jan_low 36 18
March_low 83 77

以第一行输入为例:

Jan_high 32 123
^^^ ^^^^^^^^^^^
f1  field2

相关内容