多次排序CSV列

时间:2011-04-04 16:27:54

标签: php bash

我需要编写一个将在CSV文件上运行的脚本,其中包含例如4列。 CSV文件必须进行两次排序,首先是第一列,然后是第三列。至于使用分隔符对行进行排序非常容易,我需要建议一下这两步排序的最佳方法是什么?我认为按顺序进行这些排序会有点困难,最聪明的方法是在准备好的部分线上对第3列进行排序,使用相同的值从排序的第一列,然后在具有相同下一个值的部分,等...最后合并一切...

CSV示例:

AB08,ANYTHING,EXAMPLE_2,ANYTHING
AB24,ANYTHING,EXAMPLE_2,ANYTHING
AB08,ANYTHING,EXAMPLE_1,ANYTHING
AB06,ANYTHING,EXAMPLE_1,ANYTHING
AB24,ANYTHING,EXAMPLE_1,ANYTHING
AB08,ANYTHING,EXAMPLE_3,ANYTHING

期望的样子:

AB06,ANYTHING,EXAMPLE_1,ANYTHING
AB08,ANYTHING,EXAMPLE_1,ANYTHING
AB08,ANYTHING,EXAMPLE_2,ANYTHING
AB08,ANYTHING,EXAMPLE_3,ANYTHING
AB24,ANYTHING,EXAMPLE_1,ANYTHING
AB24,ANYTHING,EXAMPLE_2,ANYTHING

我会使用PHP脚本对其进行排序和解析,但我想知道shell命令是不是更好地处理这个问题(sort / grep / awk)?

感谢您的帮助:)

干杯

1 个答案:

答案 0 :(得分:1)

sort -t , -k 1,3

应该这样做。