min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash awk で URLデコード(POSIX準拠)

URLエンコードされた文字列(空白が %20 になってるのとか)を、元の文字列に戻す(デコード)するのを手軽にやりたいと、常々思っていた。

この本を買ったら「URLデコードする」記事があったのでそのまま試す。

WEBにも同じ記事あり。コピペでは理解にならないので写経して動かしてみる。

qiita.com

コードは丸写し。よく分からない関数だけはコメントを入れる。ファイルは bash で書くので 拡張子は .sh になる。

$ vim ALL20UNIX_URL_DECODE.sh

f:id:min117:20170909111059p:plain

URLデコードしたい文字列はこれ。 スラッシュは %2F に、半角カッコは %28 と %29 になっている。

http://myserver.com/doMOVs.php?MOVIEDIR=PT3&LOCALDIR=%2Fvolumes%2FPT3&OMX_NOW=MYOMX&SELECTED=Mr.Children「抱きしめたい」Mr.Children%28an+imitation%29+blood+orange]Tour-777Gx1hiEWo.mkv

デコードしてみる。

パイプの先で今回のスクリプトを実行する。

$ echo 'デコードしたい文字列' | ./ALL20UNIX_URL_DECODE.sh

f:id:min117:20170909112731p:plain

変換された。

f:id:min117:20170909113332p:plain