我有 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 '_' -k2
withsort
会将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