我有一个tsv分隔文件,我尝试排序。
我使用function
以数字方式对第一列进行排序。
但我得到的结果如下,这不是我想要的:
sort -k1,1n,
预期产出:
061 data1
2305 data2
4080 data3
9251 data4
11844 data5
238 data6
264 data7
33940 data8
439 data9
5640 otherdata
682 help
1264 moredata
答案 0 :(得分:0)
如何使用:
sort -n Input_file
或者您需要在值之间保持相等的空格,然后跟随可以帮助您。
sort -n Input_file | awk '{$1=$1} 1' OFS="\t"
OR
sort -n Input_file | column -t
答案 1 :(得分:0)
尝试使用enctype="multipart/form-data"
作为字段分隔符:
$'\t'
答案 2 :(得分:0)
sort
也从stdin
和命令行读取。因此,如果您有文件,您可以:
sort < file
# or
sort file
如果您想根据第一列进行排序,您可以:
sort -k1 < file
但是,如果它确实会影响输出,因为默认情况下它并不关心数字顺序。因此,您应该添加-n
选项:
-n, --numeric-sort compare according to string numerical value
并且这样做:
sort -k1 -n < file
输出:
061 data1
238 data6
264 data7
439 data9
682 help
1264 moredata
2305 data2
4080 data3
5640 otherdata
9251 data4
11844 data5
33940 data8
如果您提供-r
,则按相反的顺序打印:
33940 data8
11844 data5
9251 data4
5640 otherdata
4080 data3
2305 data2
1264 moredata
682 help
439 data9
264 data7
238 data6
061 data1
答案 3 :(得分:0)
sort -k1 -n -t $&#39; \ t&#39; input_file.tsv