MacOSXの道具箱(/usr/bin/)にひっそり隠れていたものたち。
ひとつひとつはちっちゃいけれど、力をあわせりゃ、このとおり。
No.1からNo.500までを串刺し8面付にするための連番を生成します。
jot - 1 500 1 | rs -t 0 8 | sed -e 's/ $/b/' | rs 0 1 | sed -e 's/b//' > num.txt
連番の個数がシート数の整数倍でなくて半端がでる場合、最後の何枚かのシートに連番が入らない欄が一つずつできます。そこのところの処理、ちょっと工夫しました。
- jotで縦1列にならんだ連番を作ります。
- 1回目のrsで面付された状態と同じように8列に連番が並びます。
- 500より大きなところは空欄になってます。その行末の直前の空白は、ほんとは列のセパレータのはずですが、それと行末をセットにしてsedでマーク(b)を付けるのです。
- 2回目のrsで縦1列にならびかえ。
- 最後にsedでマークを外して、できあがり!
今回登場してくれたのは次のみなさん。sedさんには普段からいろいろお世話になってますけど、jotさんは、やもさんに教えてもらうまで知りませんでした。rsさんは、jotさんのmanpageで見つけました。これからもよろしく ^_^
jot -- print sequential or random data
rs -- reshape a data array
sed -- stream editor
one-liner:⦅米国用法⦆短い気のきいた冗談.
返信削除not a jot:⦅英古風⦆全然…(し)ない, 少しも…(し)ない.
RS:⦅英国用法⦆Royal Society.
sed:⦅ラテン語⦆but, but also / yet / however, but in fact/truth / not to mention / yes but.