web-dev-qa-db-ja.com

最初の列に基づいてCSVファイルを並べ替え

シェルコマンドを使用して、最初の列に基づいてcsvファイルを並べ替える方法はありますか?

150k行を超えるこの巨大なファイルがあるので、Excelで実行できます:(別の方法はありますか?

20
fiddle

sort -k1 -n -t, filenameがうまくいくはずです。

-k1は列1でソートします。

-nは、辞書式ではなく数値でソートします(したがって、「11」は「2,3 ...」の前にはありません)。

-t,は、ファイルがコンマ区切りであるため、区切り文字(ファイル内の値を区切るもの)を,に設定します。

39
Travis

上記の解決策が私の場合うまくいかなかった理由がわかりません。

15,5
17,2
18,6
19,4
8,25
8,90
9,47
9,49
10,67
10,90
13,96
159,9

しかし、このコマンドは私の問題を解決しました。

sort -t"," -k1n,1 fileName
3
Bharthan

csvsortを使用します。

  1. csvkitをインストールします(まだインストールされていない場合)。

    brew install csvkit
    
  2. 最初の列でCSVを並べ替えます。

    csvsort -c 1 original.csv > sorted.csv
    
0
Joshua Pinter