min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash カンマ区切りのcsvを1列目でソートする sort -t, -k1n

f:id:min117:20201107082912j:plain

 

bashカンマ区切りのCSV1列目でソートしたい。こんなcsv

f:id:min117:20201107081724p:plain

こうやる。

$ cat outt3.txt | sort -t, -k1n

-t, 区切り文字はカンマ,だよ

-k1 キーが1列目である

-k1n キーが1列目である かつ それを数字(n)としてソートする

 

genzouw.com

 

こうなる。

f:id:min117:20201107082013p:plain

f:id:min117:20201107082128p:plain

末尾(最大値)は2600000である。

 

-k1nを忘れるとこうなってしまう。最大値が99950になってしまっている。

f:id:min117:20201107082227p:plain

これは

 2600000の頭文字2より

 99950の頭文字9のほうが大きい

bashが勘違いしてしまっている。

つまり数字としてみていない(文字として比べてしまっている)から。

nを付けることで数字としてみてくれるようになる。忘れがち。

 

しばらくcsvファイルにハマる。bashpythonでいじり倒すつもり。

 

orebibou.com

 

www.shell-tips.com

 

free-designer.net

 

www.flyenginer.com