任意のsuffix(拡張子)のファイルがほしい場合があるかもしれません。
そんなときに使えるシェル芸を紹介します。
完全ランダムなsuffix(拡張子)を生成する場合
$ echo unko.{a..z}{a..z}{a..z}|tr \ \\n|shuf|head -n5|xargs echo
unko.yar
unko.uow
unko.tbs
unko.vxy
unko.zgb
## 実際にファイルが生成したい場合
$ echo unko.{a..z}{a..z}{a..z}|tr \ \\n|shuf|head -n5|xargs touch
存在するファイルフォーマットの拡張子から生成する
Wikipediaのファイルフォーマット一覧のページに載っている拡張子から選択して生成したいかもしれません。
現実の拡張子の文字数は3文字以外も多いためこちらのほうが実用的かも?
$ curl -s 'https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7'|pup '.sortable > tbody > tr > th > div json{}'|jq -r '.[]|select(.id != "")|.text'|grep -v null|grep -Eo '^[^,\-]+'|shuf|head|xargs -i{} echo unko.{}
unko.PYO
unko.GrADS
unko.PCM
unko.FNM
unko.W3G
unko.ORG
unko.MPA
unko.LIC
unko.XCK
unko.WP5
## 実際にファイルが生成したい場合
$ curl -s 'https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7'|pup '.sortable > tbody > tr > th > div json{}'|jq -r '.[]|select(.id != "")|.text'|grep -v null|grep -Eo '^[^,\-]+'|shuf|head|xargs -i{} touch unko.{}
### すべての拡張子のファイルを生成したい場合
$ curl -s 'https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7'|pup '.sortable > tbody > tr > th > div json{}'|jq -r '.[]|select(.id != "")|.text'|grep -v null|grep -Eo '^[^,\-]+'|xargs -i{} touch unko.{}
上記はワンライナーですが何度も実行する場合は様々な影響を考慮して、
下記のように一旦ファイルに書き出して実行するようにしましょう。
$ curl 'https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7' -o suffix.html
$ cat suffix.html|pup '.sortable > tbody > tr > th > div json{}'|jq -r '.[]|select(.id != "")|.text'|grep -v null|grep -Eo '^[^,\-]+'|shuf|head|xargs -i{} echo unko.{}
dependency
珍しいコマンドとしてhtmlの解析にpupを利用しています。便利です。ありがとうございます。
感想
テストファイルの生成でつかえるのかな?