排序 - 如果某些列中缺少值,该怎么办?

Run*_*ner 0 unix linux sorting bash

我想使用SORT命令根据第5列对表格文件进行排序,但是,第3列中有一些缺失值.我注意到sort命令与-k5,5无法正常工作,但-k1,1或-k2,2没有问题.是因为缺少价值吗?

rua*_*akh 5

默认情况下,sort只要有空格字符后跟非空白字符,就认为字段开始.例如,在此代码段中:

a     b     c     d
e           f     g
Run Code Online (Sandbox Code Playgroud)

第一行有四个字段,第二行有三个字段.

如果要使用其他分隔符,可以使用该-t选项指定.例如,要使用制表符作为分隔符,您可以编写:

sort -t $'\t' -k 5,5
Run Code Online (Sandbox Code Playgroud)

这将允许sort检测空字段(因为两个连续的选项卡将被解释为两个不同的分隔符,它们之间有一个空字段).

  • bash中的双引号字符串不会特别解释转义序列.`"\ t"`只是一个包含反斜杠和字母t的2个字符的字符串.http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting上的文档 (2认同)