我需要按照显示的顺序安排以下内容。首先基于第一列,其次基于第三列。
148672074 ABC 23.77
148672073 ABC 13.77
148672074 ABC 53.77
148672071 ABC 23.77
148672074 ABC 93.77
148672074 ABC 193.77
我需要它,
148672071 ABC 23.77
148672073 ABC 13.77
148672074 ABC 193.77
148672074 ABC 93.77
148672074 ABC 53.77
148672074 ABC 23.77
我用下面的命令。
sort -t "\t" -k1,1n -k3,3rn a.txt >b.txt
但是,我得到的输出为
148672071 ABC 23.77
148672073 ABC 13.77
148672074 ABC 193.77
148672074 ABC 23.77
148672074 ABC 53.77
148672074 ABC 93.77
有人请告诉我我要去哪里错了?并请给我正确的命令。
PS:我正在使用的文件是TSV格式文件,是从Excel工作表导出的。
\t
被识别为t
,而不是制表符。
代替\t
,按Ctrl+ V,然后Tab表示制表符。
$ sort -t " " -k1,1n -k3,3rn a.txt
148672071 ABC 23.77
148672073 ABC 13.77
148672074 ABC 193.77
148672074 ABC 93.77
148672074 ABC 53.77
148672074 ABC 23.77
更新
正如fedorqui所说,您还可以使用$'\t'
:
$ sort -t $'\t' -k1,1n -k3,3rn a.txt
148672071 ABC 23.77
148672073 ABC 13.77
148672074 ABC 193.77
148672074 ABC 93.77
148672074 ABC 53.77
148672074 ABC 23.77
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句