それマグで!

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

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

nkfの使い方:base64のエンコードとデコード(ただし文字列だけ

nkf だけで base64エンコードとデコードが出来る

nkf には -mB-MB のペアがあるのでBase64エンコードとデコードが出来る。

nkfbase64 エンコード

echo  -n こんにちは | nkf -MB

nkfbase64 デコード

echo 44GT44KT44Gr44Gh44Gv| nkf -mBW
こんにちは

入力の文字コードを -W : utf8 で指定してる。

主に文字列

文字列だとうまくいく。nkf は「文字コード」を変えるコマンドなので、バイナリも文字として扱ってしまうのでデータは壊れる。アレコレすればいいだろうけど、そこまでやる必要は特になくbase64 コマンドを使ったほうが良いので。

関連記事

nkfでURLエンコードされた文字を扱える(エンコード・デコード・文字コード)

nkf だけで、URIエンコードされた文字を扱える

とある文字列を処理していて、CP932(Shift_JIS ) がそのまま、URLエンコードされた文字に出会って、ちょっと面倒な自体になった 。 node の decodeURI/decodeURIComponent だとUTF-8を期待されて動かない。ruby/pythonだと内部文字コード*1から変換が面倒くさい。nkf文字コードを変換を調べてたら、 nkf だけで行けることがわかった。

NKF で URL をデコードする

$ echo %E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%EF%BC%81 | nkf --url-input
こんにちは!

--url-input オプションを使えば、デコード出来る

デコード結果をさらに utf8にするには -W オプションをつけておけばいい。nkf --url-input -W

NKF でURLをエンコードする。

takuya@:~$ echo こんにちは! | nkf -MQ | sed s/=/%/g
%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%EF%BC%81

-MQ オプションはQuoted stream に変換するので、 =を使ってる。それを%に変換すればいい

nkf 便利。

NKFは枯れた技術だし安心して使えるわ。Windows文字コードがutf8にならねーかなぁ

関連資料

文字コード変換コマンドの nkfの使い方と実例をまとめました。 - それマグで!

参考資料

*1:ruby の場合内部文字コードはないんだけど、utf-8がデフォルト仕様なので、やっぱり面倒くさい

Macのopen(開く・保存)のダイアログで、不可視ドットファイル(フォルダ)を選択するーフルパスで開くモード

Mac の保存ダイアログで不可視フォルダを選びたい

開くダイアログのフォルダ選択のときに、隠しファイルやフォルダを開きたいときがよくある。

ドットファイルやドットのフォルダ( .rbenv / . pyenv など)を開きたい。

たとえば、atom/visual studio code/intelli J のIDEドットファイルを見たいときが結構ある。

私の場合 RubyMineやPycharm で rubygemspythonのpip ファイルを見たいときが頻発した。毎回コマンドで指定するのも面倒くさいので、なんか方法がないか調べたらあった。

⌘⇧G / Shift+Cmd+G でフルパス入力

保存・開くダイアログで上記のショートカットを入力すると、ダイアログが開いて、フルパスで指定できるようになる。

f:id:takuya_1st:20170612012219p:plain

残念ながら、補完は効かないようで・・・

フルパスを取得するには、いったんターミナルなどでフルパスを作ってクリップボードに入れておく必要がありますね。

Windows(田)のNTFSみたいに、フォルダ・ファイルごとに可視・不可視を切り替えらればいいのにね。APFSで導入されないかなー

参考資料

http://inforati.jp/apple/mac-tips-techniques/system-hints/how-to-use-move-to-folder-command-in-a-open-or-save-dialog-in-macos.html

Windowsはフォルダ毎に不可視を設定できる。

Windowsのホームディレクトリに出てくる、dotfiles を非表示にする。 - それマグで!