シェルスクリプトマガジン

特集 無いものは作れTukubai 流コマンド自作文化(後半・本誌vol.7掲載)

 

各地でOpen usp Tukubai を紹介すると、多くの人にとても興味を引かれることがある。

それは、Unix コマンドを自ら作っていくと言う習慣だ。
コマンドを作るということは、他言語で考えればifやfor等の予約語を追加するようなものかもしれない。そう考えると確かに興味深い。
だが、Unix の世界ではそれが当初のやり方だった。
コマンドを自作する文化。
この素晴らしさを、改めて伝えたい。

written by USPマガジン編集部

本記事は、USP MAGAZINE vol.7(2013年冬号)掲載記事のWEB再録記事(後半部分)です。

記事前半はこちら!

本記事掲載のUSP MAGAZINE vol.7は以下リンク先でご購入できます。

 

第三章 道具を夢見たコマンドたち

USP 研究所は、前時代を含めてこれまで2000 個にも及ぶコマンドを作ってきたという。多い日は1 日で10 個作ったこともあったのだとか。しかしそれら大半のコマンドが淘汰されていったことは、今のOpen usp Tukubai のコマンドの数を見れば容易に想像がつく。
「道具とは何たるか」などと偉そうなことを語っておきながらこれは一体どういうことか!とツッコミを入れたくなるところではあるが、そういう歴史があるからこそ道具の本質を見極め、そしてTukubai の思想を確立させられたのだろう。
そこでこの章では、そんな道具を夢見て生み出されながら淘汰されていったコマンドや、これから道具として活躍する可能性を秘めたコマンドなど、いくつか紹介していこう。

その1.yuniq コマンド

uniq コマンドの横方向版「横uniq」ということで登場したコマンドだ。その名のとおり、横方向にuniq がなされる。

スペース区切りで、同じ綴りの文字列が連続してるとそれを一つに集約する。ただし、連続せずに出現したものに関しては集約されない。このあたりの仕様はuniq コマンドと同様に作られている。

ソースコード

以下に全体を掲載する。勿論cc でコンパイル可能だ。

 

道具になれなかった理由とは

yuniq 無しに横方向uniq をせよ、と言われたらどうやる だろうか。Tukubai コマンドを使えば次のように書ける。

つまり、単語を一旦縦に並べてソートして、横に並べ直せばいいというわけだ。
横方向uniq の使用頻度がそう高くなかったために、ユニケージエンジニア達もこのコマンドを覚える機会がなかったうえ、たまに横方向uniq が必要になった時もtarr → uniq → yarr の組み合わせで事足りてしまったためにいつしか忘れ去られてしまった。