我想使用 SORT 命令根据第 5 列对表格文件进行排序,但是,第 3 列中有一些缺失值。而且我注意到 sort 命令不能与 -k5,5 一起正常工作,但是 -k1,1 或 -k2,2 没有问题。是因为缺少值吗?
问问题
1350 次
2 回答
5
默认情况下,sort
只要有一个空格字符后跟一个非空格字符,就会认为一个字段开始。例如,在这个片段中:
a b c d
e f g
第一行有四个字段,第二行有三个字段。
如果要使用不同的分隔符,可以使用-t
选项指定。例如,要将制表符用作分隔符,您可以编写:
sort -t $'\t' -k 5,5
这将允许sort
检测空字段(因为两个连续的选项卡将被解释为两个不同的分隔符,它们之间有一个空字段)。
于 2013-01-11T21:53:02.983 回答
0
如果您有时缺少列,我会猜测您的数据是固定格式的,即文本对齐如下:
1 2 3
2 23 12345
或这个
1 2 3
2 23 12345
而不是这个
1 2 3
2 23 12345
如果这是真的,您可以使用实际上没有出现在输入中的制表符,并使用键对现在的单字段-t/ -k1.20
进行排序,例如对从第 20 列开始的字符进行排序。
于 2013-01-11T21:57:34.497 回答