我的文件包含:
9827259163,0,D<br>
9827961481,0,D<br>
9827202228,0,A<br>
9827529897,5,D<br>
9827529897,0#1#5#8,A<br>
9827700249,0#1,A<br>
9827700249,1#2,D<br>
9883219029,0,A<br>
9861065312,0,A<br>
我希望它根据第一列进行排序,如果第一列中的记录相同,则不要对这些记录进行进一步排序。
$ 排序 -t, -k1,1 测试
9827202228,0,A
9827259163,0,D
9827529897,0#1#5#8,A
9827529897,5,D
9827700249,0#1,A
9827700249,1#2,D
9827961481,0,D
9861065312,0,A
9883219029,0,A
但我期望的是:
9827202228,0,A
9827259163,0,D
9827529897,5,D
9827529897,0#1#5#8,A
9827700249,0#1,A
9827700249,1#2,D
9827961481,0,D
9861065312,0,A
9883219029,0,A
因为 9827529897
和 9827700249
有两条记录,所以不应该进一步排序。
请推荐bash shell中的命令
最佳答案
添加选项-s
sort -st, -k1,1 test
输出:
9827202228,0,A
9827259163,0,D
9827529897,5,D
9827529897,0#1#5#8,A
9827700249,0#1,A
9827700249,1#2,D
9827961481,0,D
9861065312,0,A
9883219029,0,A
关于bash 对列进行排序但不对相同的列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9176891/