それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

encodeURIComponent をコマンドで使いたい。

JavaScriptで便利な関数の代表例といえば、escape/unescape, encodeURI/decodeURI, encodeURIComponent/decodeURICompontのペアじゃないでしょうか?

PHPからやるには、 rawurlencode => encodeURIComponent
Ruby からやるには、URI.encode_www_form_component => encodeURIComponent

がそれぞれ、対応する関数になります。

phpでは?rubyでは?とか、覚えるのめんどうじゃん?

そうですよね。URIを手軽にパパっとエンコードしたいだけなのに、これらの関数を覚えるのめんどうじゃん。

かといって、Chrome/Operaを起動して要素の検証で。。

それも面倒な話だ。開発者ツール起動しっぱなしだけど、コピペすら面倒。だって標準出入力とパイプ使えないじゃん。

コマンドでencodeURIComponent

node.js があるじゃないか

#!/usr/bin/env node

path = require('path');

str =   process.argv[2];
name =  process.argv[1];

name =  path.basename(name) ;

console.log(global[name](str));


つくった。これで、コマンドで引数のファイル名として呼べる。なので

takuya@air:~/Desktop$ encodeURIComponent http://takuya-1st.hatenablog.jp/ | pbcopy

で簡単になっています

しかも他の関数もコピーするだけ

ファイル名を関数名にマッピングしたので。

cd  /usr/local/bin/
ln -s ./encodeURIComponent ./decodeURIComponent
ln -s ./encodeURIComponent ./decodeURI
ln -s ./encodeURIComponent ./escape

などと別の関数もコマンドで使えるようになって便利になりました。

コマンドさえあれば他に何もいらないよね。

2013-11-13 改良版 をQiitaに投げたよ

http://qiita.com/takuya_1st/items/11b9b79d16ccbb3aed40