在bash中对数据文件进行排序

时间:2015-02-12 19:59:48

标签: linux bash sorting

我在bash脚本中使用sort来订购生成的文件。输入文件的示例是:

2,0,2165,5
2,-10,2122,5
2,10,2830,6
2,-11,2121,5
2,11,2903,6
2,-1,2151,5
2,1,2171,5
2,-12,2114,5
2,-13,2118,5
2,-14,2121,5
2,-2,2144,5
2,2,2199,5

我需要对第一个数字进行排序,然后是第二个,我尝试了以下内容:

sort -k1,1n -k2,2n data

正数按要求排序,但负数是按字典排序的:

2,-10,2122,5
2,-11,2121,5
2,-1,2151,5
2,-12,2114,5
2,-13,2118,5
2,-14,2121,5
2,-2,2144,5
2,0,2165,5
2,1,2171,5
2,2,2199,5
2,10,2830,6
2,11,2903,6

有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

sort -t, -k1,1n -k2,2n nums
2,-14,2121,5
2,-13,2118,5
2,-12,2114,5
2,-11,2121,5
2,-10,2122,5
2,-2,2144,5
2,-1,2151,5
2,0,2165,5
2,1,2171,5
2,2,2199,5
2,10,2830,6
2,11,2903,6

你需要告诉排序分隔符,它在这里工作。