Linux勉強会(ブレース展開)
はじめに
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に置いていたファイルごと移動させたいときに2回打ち込む必要があったコマンドを1回で片付けたりするのに使えるみたいです。 小さいことだけど地味に便利だ…
まとめ
Linuxのブレース展開を使うことで、簡単に文字列や数値を生成できます。この機能を活用することで、シェルスクリプトをより簡潔に書くことができ、効率的なデータ処理が可能になります。ブレース展開の使い方と実用的な例を学ぶことで、Linuxのシェルスクリプトをより強力なツールとして活用できます。
例えば、ランダムなメアドとかを生成したり、色々使いみちがありそうです。