2013-04-20 114 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