【シェル芸】文字の組み合わせ(順列/組み合わせ)の出し方

Python
この記事は約2分で読めます。

ブレース展開での順列作成

ターミナル(コマンドライン)上で特定の文字列の組み合わせを作りたい時、一番最初に思いついたのがブレース展開を利用した下記でした。

それぞれの処理は下記のような感じです。

ただ、これだと数字が変わるたびに中括弧の中やgrepの条件をを書き換えなければいけないのでめんどうです。
初歩的コマンドだけで出せるのは利点ですが、いろいろ試すにはちょっとなぁという感じですね。

言語の力を借りて順列作成

調べてみたところ、PythonやRubyに順列を出力してくれる関数があるようなので使ってみました。

Python3

Ruby

環境によってはもしかしたら若干コマンドいじらないといけないかもしれませんが、私のMacとLinuxの環境では一応動作しました。

これで突然順列が欲しくなっても大丈夫ですね。

最後に

それなりの短さでいい感じに書けましたね.

ただ、Pythonの方の処理は個人的にはあんまり好きではないですね,,,

処理の流れ的に、右から左に処理をしていくようにどうしても見えてしまうので直感的に分かりづらいです。

なのでおすすめはRubyですね。

おまけ

ちなみに、最近シェル芸を体系的に?勉強できる本(シェル・ワンライナー160本ノック)が出版されたのでやり始めました。
(まだ40本しか終わってないなんて口が裂けても言えない)

かなり基礎的な内容もやってくださるので技術力に自信がない方にもおすすめです。

ただし、全部読み切るのは結構大変そうなので興味のあるところをつまみ食いするのが一番良さそうだなぁという印象です。

シェル芸人になりたい方は是非やりましょう。

1日1問、半年以内に習得 シェル・ワンライナー160本ノック (Software Design plusシリーズ)
1日1問、半年以内に習得 シェル・ワンライナー160本ノック (Software Design plusシリーズ)

コメント

タイトルとURLをコピーしました