最近IT系のニュースサイトをスクレイピングするプログラムを走らせて、ネットサーフィンする時間を節約するようになりました。 スクレイピングにはJavaのJsoup, Seleniumを使っているのですが、今回はその実装内容について書き残してみます!
続きを読む任意の容量のファイルを生成したいとき
やりたかったこと
- 任意の容量のファイルを生成したい
- 背景としてファイルのアップロード処理における容量制限の手動テストをしたかった
動作環境
macOS, Linuxのターミナル、もしくはWindowsのGit Bashなら動作します
生成方法
# 乱数で構成された1KBのテキストファイルを生成する $ base64 /dev/urandom | head -c 1000 > ./testfile.txt # 生成されたか確認する $ ls -l total 4 ... -rw-rw-r-- 1 ec2-user ec2-user 1000 Apr 25 13:46 testfile.txt ...
コマンドの解説
base64 /dev/urandom
/dev/urandom
で疑似乱数を取得し、base64
でBase64エンコードをしています。
/dev/urandom
で取得できるランダム値はバイナリですが、Base64エンコードをすることでテキストとして扱えるようになります。
試しにtestfile.txt
の中身を覗いてみると以下のようになっています。
$ cat testfile.txt 3DpGlb38eADUOZ77efFn8wfbArSBUg1+sewRT6mjFx9wJoEbdoSc94aabtyCTLYHTNXG93ME1iku iJpHQoaGZjnBierOKYX2OQbKR8DAf8uYw5VLq74mhUGQKS6+9pp4yyG+eg754Kuz8UTaToCnNaJP UAeCM4/oGVZJhE+DPvg86UZRxcsGTsmuAXXivVamxCZlwMJg0rkboSOZ2vxnDFl3JTB/FbvmyeHI YfO8NEGWTrMZFJJqAOJ230fwUZAv4aLqGpdmFusSuaiptKibVR+H8ci8+oWmosi8tDfNHlval8yO vM4I8KdVIRflZNPc05UU3qFgarkY3q7yNmJyU0q9nFzet3lsLfzFQ3HSCOzUCh/aOU5NPzRoLrgd K1cEK4yWsuRauUr0EEHdLaF5+WjOu/41KR8zr1WO73q9dckDfcxyihfqKdqu1eGCX6h5KU6FmH2P Ej41j+lP2TIYN11x/n5dlHShyv+hZy9F9VnW4mkrNOoCU7Uw/rv9GPf5FDLlNK3pZ7/0sxcQql4x dpv0aNephMNWsaH4nPq8uAZ1WLN88MlDFQU2qPb5mUKKOHYawDLnq5UJaav/bFjzuXzYvuhauLKx meAjuGBZrJVDOLnStIT7ictt15waWthMFhdyHcthrfZaE75kJJBQX8FMClOGpXvXCEdVKMfs96Og bqV+9tqkcl0v7TXF8w+f0gPlISlmAkcS0vXaGsMcfcMy6fKOnf2CwxyWN/mhxvwZHWaA4/wlHtUz zg098OaHPxGkmnkT0jZYvscHCfF1tYuBh4KWS+kkDIBpJC8aSkyoZ3izG/uULrlMgljilgnkEIt9 3WAOa+Wq40fb+i+0ifEsI2urGMHpOdGlv9sS7j4giEBQJYWc0MRflaEcyPCHOrGTyOzeif2yejiA cjSgoh+UEQtn7zTswHAWZx/u8utGc65HzMt4oPvVHqfLiBlO1fxhTe6jDlciA6NTauC/4SLEe0I7
head -c 1000
先頭から1000byte分の値を抜き出します。
パイプでbase64 /dev/urandom
と組み合わせることによって、Base64エンコードしたテキストの先頭1000byte分だけを抜き出しています。
あとがき
コマンドを叩くと問答無用でファイル生成するので、head -c ****
で指定するbyte数を間違えないように気を付けましょう。
私は間違えて1GBのファイルを生成しました🤤