一番長いファイル名は?

一番長いファイル名は?というような問題こそ awk の最も得意とするべきところです。 Linux では通常 updatedb コマンドによりファイルのインデックスが作成され、locate コマンドでどこにあるかを簡単に検索することができます。 といっても、非力なマシンでは updatedb コマンドはディスク I/O がかなり発生するため止めているようなケースもあるようなので、環境によってはうまく出力されないかもしれません。

ここでは locate コマンドの出力と awk の一行野郎で処理を行ってみます。 以下のものは長すぎて Internet Explorer だと乱れるかもしれません。

$ locate '*' | gawk '{sub(/.*\//,"")}n<length($0){n=length($0);s=$0}END{print n,s}'
236 Zaurus+%A4%C7+OS+%A4%F2%C6%FE%A4%EC%C2%D8%A4%A8%A4%EB%CD%A6%B5%A4%A4%CF%A4%CA%A4%A4%A4%B1%A4%C9%A1%A2%A1%D6CUI+%A4%CF%C0%A4%B3%A6%B0%EC%A5%A3%A5%A3%A5%A3%A5%A3%A1%D7%A4%C8%A4%A4%A4%A6%BF%CD%A4%CE%A4%BF%A4%E1%A4%CE%A5%DA%A1%BC%A5%B8.wiki

なんと 236 文字のファイルが存在していることが分かりました。 ファイル名から推測して Wiki のファイルなのですが、Zaurus で OS を入れ替える勇気はないけど、「CUI は世界一ィィィィ」という人のためのページでした。

tag_nawk.pngtag_nawk.pngtag_nawk.pngtag_nawk.png