ランダムな英単語を組み合わせた文字列が欲しいときのワンライナー

Githubのリポジトリ名サジェスト機能のように、ランダムな英単語をふたつ組み合わせて出力したくなったので、シェルスクリプトでワンライナーを書きました(macOS以外では動かないかも)。

$ cat /usr/share/dict/words | sort -R | head -2 | tr '[:upper:]' '[:lower:]' | paste -d '-' - -
multilocation-misallotment

2単語以上出力したい場合は、headコマンドのオプションを変えてpasteコマンドの - をその数だけ繰り返します。

$ cat /usr/share/dict/words | sort -R | head -5 | tr '[:upper:]' '[:lower:]' | paste -d '-' - - - - -
peribronchiolar-telltalely-broom-tribracteolate-benzoylformic

ハイフンではなく直接単語同士をつなぎたい場合は '-''\0' に置き換えます。

$ cat /usr/share/dict/words | sort -R | head -2 | tr '[:upper:]' '[:lower:]' | paste -d '\0' - -
anthracotheriidaexenelasia

Githubのようにあらかじめ単語を選んでるわけではないですが、何度か実行しているとなかなかかっこいい文字列が出てきます。

$ cat /usr/share/dict/words | sort -R | head -10 | tr '[:upper:]' '[:lower:]' | paste -d '-' - -
physicalness-deliquescent
biceps-foamily
tralatitious-trimetrical
trichiuroid-sewerless
nonfamous-schedar

見たことも聞いたこともない単語ばかり出てきますが、辞書で意味を調べてみると公の場で使うのは憚られそうな単語が入っていることがあるので、チェックしてから使うとよさそうです。