2013-04-20 111 views
0

我想使用unix sort命令对csv文件进行排序,并且没有列可以很容易从行到行 但是从最后一列的第3列保持不变我将如何实现UNIX文件排序命令?我试过 sort -t“,”-k? filename.csv想从第三列开始排序csv文件从行尾开始,而不是开始

,但我不能想出放什么用k作为这将是没有从开始列的,而不是从去年

样本数据

"Hotel_Dom","[email protected]","[email protected]","NH57014106349",1280082600,"B2B","10037" 
"Hotel_Dom","[email protected]","[email protected]","NH5520894246",1280023222,"B2B","1670" 
"DF","[email protected]","FLTINT1000130394756","12800231456","B2C","6799.2" 
"Rail","[email protected]","NR251764697478",1280084511,"B2C","2025" 

现在我想排序使用UNIX命令排序按日期,所以我已经因为时代,但在我的CSV开始列在数量上不同的,所以我想从去年那种适用于第三行这始终是迄今为止

+0

请重写你的句子,并添加一个你的输入文件的小样本和你想要的输出;即使编辑你的问题也很困惑。 – Rubens 2013-04-20 12:45:28

回答

2
awk -F, '{print $(NF-2)FS$0}' filename.csv | sort -n | sed 's/^[^,]*,//' 
转换日期时间0

希望这能起作用+

+0

什么是NF-2做?即使得到这个错误是致命的:尝试访问字段-2 – Geek 2013-04-20 13:48:26

+0

由于第一列被解释为一个数字(原来的问题暗示,尽管OP没有这么说),sort -n是更好,但+1,这是我会写的。 – 2013-04-20 16:37:42