Linuxコマンド勉強会(ブレース展開)

2021-10-23

はじめに

家から徒歩圏内に横浜家系ラーメンの店ができるのが楽しみです。 田町商店なのでよくあるチェーン店ではあるのですがそれでも楽しみなのです。 見渡せば畑と田んぼしか無いような田舎で、近所のおっちゃんがやってるような焼肉ラーメンみたいなキワモノしか無い中に、体が求めた動物系スープのラーメンがやってくるのです。

今日も引き続きLinux コマンド勉強会を進めていきます。

ブレース展開

echoで任意の文字列を生成するのに利用できる機能です。

{A,B}{C,D}というように書くとその単語を組み合わせて出力できます。

echo -e {中華,魚介,特濃,濃厚,鶏}{白湯,味噌,醤油,豚骨,二郎系,}{ラーメン,ソバ}"\n"

結果このような結果が得られます。

中華白湯ラーメン
 中華白湯ソバ
 中華味噌ラーメン
 中華味噌ソバ
 中華醤油ラーメン
 中華醤油ソバ
 中華豚骨ラーメン
... 以下略

{n..m}とうように書くと数字の連番を組み合わせて出力できます。

echo -e {中華,焼}{ソバ,飯}{1..2}人前よろしく"\n"

出力結果。

中華ソバ1人前よろしく
 中華ソバ2人前よろしく
 中華飯1人前よろしく
 中華飯2人前よろしく
 焼ソバ1人前よろしく
 焼ソバ2人前よろしく
 焼飯1人前よろしく
 焼飯2人前よろしく

計算問題の出力

このブレース展開について何かいい例が思いつかなかったのですが、学校の先生とかは便利かもなって思いました。

echo -e {10..12}×{100..110}="\n"                                                             

10×100=
 10×101=
 10×102=
 10×103=
 10×104=
 10×105=
 10×106=
 10×107=
 10×108=
 10×109=
 10×110=
 11×100=

使う場面

院生時代の友人からこういう使い方あるよって教えてもらいました。 リーダーはいつも良いことを教えてくれる。ありがたい。

mv hoge/huga/foo/bar/a.conf{,.bak}

backupに置いていたファイルごと移動させたいときに二回打ち込む必要があったコマンドを一回で片付けたりするのに使えるみたいです。 小さいことだけど地味に便利だ…

まとめ

ランダムなメアドとかを生成したり、色々使いみちがあるのかと思いました。 さて、この件については特に言うこと無いのですが、Shellはこのような機能が色々あるらしく調べるの楽しみですね。