use*_*157 4 awk text-processing sort columns text-formatting
我希望min_ex按第一列按字典顺序和第二列按数字对下面的 TSV 文件(称为 )进行排序。
A X, N 2.2
A, N 5.7
A, A 5.8
A, N 2.1
A, T 0.2
B G, M 2.3
B, L 0.1
B, I 0.2
B, M 9.3
B, C 9.9
Run Code Online (Sandbox Code Playgroud)
我尝试用 来做到这一点sort -k1,2 -n min_ex。但它不起作用,因为它会导致:
A, A 5.8
A, N 2.1
A, N 5.7
A, T 0.2
A X, N 2.2
B, C 9.9
B G, M 2.3
B, I 0.2
B, L 0.1
B, M 9.3
Run Code Online (Sandbox Code Playgroud)
我还认为我也非常确定(通过实验)sort将任何空格作为分隔符,但我没有看到设置分隔符的选项。
我想要使用纯 AWK 或sed根本不使用(最好两者都单独使用)的解决方案,并且我希望尽可能保持 POSIX 兼容。
sort -t$\'\\t\' -k1,1 -k2,2n\nRun Code Online (Sandbox Code Playgroud)\n\n做到了这一点,并且除了该部分之外,它\xe2\x80\x99s POSIX 兼容$\'\\t\'。-t指定字段分隔符(而不是默认的空白到非空白转换);后缀n可以应用于单个字段定义。