TVアニメ「ヒナまつり」第1弾PV
アニメ『ヒナまつり』
身寄りのない超能力少女ヒナは、新田の家に住み込むことで、中学校に通えて、炊事をしなくてもイクラ丼を食べられて、暇な時はゲームをする何不自由ない生活です。一方、同じ超能力少女のアンズの方は、働かないとごはんが食べられないので、空き缶集めが数百円にしかならなくても、毎日当たり前のように働いて感心な子です。もうアンズがよい子すぎてしょうがない。アンズを見てると心がきれいになるようです。
アンズから見たら、ヒナの家が、どれほどの金持ちなのか分からないのではないでしょうか。(ホームレスの時の)アンズは,(カンマ)が必要となる桁のお金を、普段持ってませんので。
今回は、数字を読みやすくするコマンドnumfmtです。数字をカンマ区切りに変換してみましょう。
まずは、100000000を、100,000,000に変換。
takk@deb9:~/tmp$ numfmt --grouping 100000000 100,000,000 takk@deb9:~/tmp$
–groupingオプションをつけて、引数に数字を指定するだけです。
もちろん複数指定できます。
takk@deb9:~/tmp$ numfmt --grouping 1000 2000 3000 1,000 2,000 3,000 takk@deb9:~/tmp$
パイプで渡す場合は、改行区切りでも、
takk@deb9:~/tmp$ seq 1000 100 1400 | numfmt --grouping 1,000 1,100 1,200 1,300 1,400 takk@deb9:~/tmp$
空白区切りでも指定できます。
takk@deb9:~/tmp$ seq 1000 100 1400 | xargs numfmt --grouping 1,000 1,100 1,200 1,300 1,400 takk@deb9:~/tmp$
指定の仕方を変えると、こういうことですね。
takk@deb9:~/tmp$ numfmt --grouping `seq 1000 100 1400` 1,000 1,100 1,200 1,300 1,400 takk@deb9:~/tmp$ numfmt --grouping `seq -s' ' 1000 100 1400` 1,000 1,100 1,200 1,300 1,400 takk@deb9:~/tmp$ seq -s' ' 1000 100 1400 1000 1100 1200 1300 1400 takk@deb9:~/tmp$
数値のマトリクスの場合どうなるでしょうか。
takk@deb9:~/tmp$ seq 1000 100 2400 | pr -t3J | tee sample.txt 1000 1500 2000 1100 1600 2100 1200 1700 2200 1300 1800 2300 1400 1900 2400 takk@deb9:~/tmp$
適当に数字を並べた、マトリクスをファイル化して、これを引数で指定してみましょう。
takk@deb9:~/tmp$ numfmt --grouping sample.txt numfmt: invalid number: `sample.txt' takk@deb9:~/tmp$
ファイルを指定することはできませんでした。あくまでも数字じゃないといけないようですね。
では標準入力を使いましょう。
takk@deb9:~/tmp$ cat sample.txt | numfmt --grouping 1,000 1500 2000 1,100 1600 2100 1,200 1700 2200 1,300 1800 2300 1,400 1900 2400 takk@deb9:~/tmp$
もしくはこれ。
takk@deb9:~/tmp$ numfmt --grouping < sample.txt 1,000 1500 2000 1,100 1600 2100 1,200 1700 2200 1,300 1800 2300 1,400 1900 2400 takk@deb9:~/tmp$
どちらにしても、なぜか、先頭列の数字しか変換できませんでした。
実はマトリクスを渡す場合、変換列を指定する必要があります。
–fieldオプションを使います。
takk@deb9:~/tmp$ cat sample.txt | numfmt --grouping --field=2 1000 1,500 2000 1100 1,600 2100 1200 1,700 2200 1300 1,800 2300 1400 1,900 2400 takk@deb9:~/tmp$ cat sample.txt | numfmt --grouping --field 2 1000 1,500 2000 1100 1,600 2100 1200 1,700 2200 1300 1,800 2300 1400 1,900 2400 takk@deb9:~/tmp$
全列を変換するには、-を指定します。
takk@deb9:~/tmp$ cat sample.txt | numfmt --grouping --field - 1,000 1,500 2,000 1,100 1,600 2,100 1,200 1,700 2,200 1,300 1,800 2,300 1,400 1,900 2,400 takk@deb9:~/tmp$
まあアンズと同じく、私もカンマが2つ必要な数字には、ご縁がありません。それがアンズを見ていて気分が良い理由かもしれません。
コメント