こんにちは、さるまりんです。
以前sortコマンドで「ひらがな」で並べてみるというのをやりました。
今回は数値でデータを並べてみます。
こんなファイルがあります。
fruits.csv
3,Apples
7,Bananas
5,Oranges
2,Grapes
10,Pears
1,Watermelon
4,Mangoes
9,Strawberries
6,Pineapples
8,Peaches
このデータをソートしたい。
単純にsort
コマンドでやってみます。
$ sort fruits.csv
1,Watermelon
10,Pears
2,Grapes
3,Apples
4,Mangoes
5,Oranges
6,Pineapples
7,Bananas
8,Peaches
9,Strawberries
惜しい!
1の次は10ではなくて、2になってほしい、そして9の後に10が来てほしいですよね。
それをするにはこうします。
sort -t',' -k1,1n [入力ファイル]
やってみます。
$ sort -t',' -k1,1n fruits.csv
1,Watermelon
2,Grapes
3,Apples
4,Mangoes
5,Oranges
6,Pineapples
7,Bananas
8,Peaches
9,Strawberries
10,Pears
ちゃんと並んでくれました。
sort
コマンドの-t','
で区切り文字をカンマに指定、-k1,1n
で1番目のフィールドを数値順(n
)で並べるとオプションで指定しています。
コマンドってパワフルですよね。
作ってきてくれた方に感謝してプログラムを書きたいと思います。
読んでくださってありがとうございました。
それではまた!