シェルコマンドを使用して、最初の列に基づいてcsvファイルを並べ替える方法はありますか?
150k行を超えるこの巨大なファイルがあるので、Excelで実行できます:(別の方法はありますか?
sort -k1 -n -t, filename
がうまくいくはずです。
-k1
は列1でソートします。
-n
は、辞書式ではなく数値でソートします(したがって、「11」は「2,3 ...」の前にはありません)。
-t,
は、ファイルがコンマ区切りであるため、区切り文字(ファイル内の値を区切るもの)を,
に設定します。
上記の解決策が私の場合うまくいかなかった理由がわかりません。
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
csvsort
を使用します。csvkit
をインストールします(まだインストールされていない場合)。
brew install csvkit
最初の列でCSVを並べ替えます。
csvsort -c 1 original.csv > sorted.csv