URL エンコードされた文字列をデコードして使いたい時がありますよね。
bash のfunction で書いてみました。
csh ならalias で書けそうです。

環境

  • WSL (Ubuntu 18.04)

構築

  1. nkf パッケージのインストール

    $ sudo apt install nkf
  2. function(関数)の定義

    ~/.bash_aliases
    # URL Encode / Decode
    function urlencode {
    echo $1 | nkf -WwMQ | tr = % | sed ':a;N;$!ba;s/%\n//g'
    }

    function urldecode {
    echo $1 | nkf -w --url-input
    }

実行

  • 再ログインする
  • 即時反映したい場合
    $ . ~/.bash_aliases

利用

  • URL エンコード (対象のURL文字列をダブルクォートで囲います)
    $ urlencode "https://ktkr3d.github.io/こんな URL/そんな階層/"
    https%3A%2F%2Fktkr3d%2Egithub%2Eio%2F%E3%81%93%E3%82%93%E3%81%AA%20URL%2F%E3%81%9D%E3%82%93%E3%81%AA%E9%9A%8E%E5%B1%A4%2F
  • URL デコード (対象のURL文字列をダブルクォートで囲います)
    $ urldecode "https%3A%2F%2Fktkr3d%2Egithub%2Eio%2F%E3%81%93%E3%82%93%E3%81%AA%20URL%2F%E3%81%9D%E3%82%93%E3%81%AA%E9%9A%8E%E5%B1%A4%2F"
    https://ktkr3d.github.io/こんな URL/そんな階層/