気づいたことをまとめる

  • 今日分かったこと
    • gaucheで式を一つだけ実行
    • module-exportではすべての手続きを調べられない
    • aproposで手続きを調べられる
    • nkfで"--overwrite"を使うと楽に文字コードを変更できる
    • findの"-print0"と対応するのはxargsの"-0"
      • ファイル名に空白が使われていものに必要
    • 木とhash-tableの使い分け(順序付けられているかどうか)

以下詳細

gaucheを式一つだけ実行

goshを"-E"オプションをつけて実行するとreplが立ち上がってしまう。
初めは、存在しないファイルを指定して実行させて、エラー出力を捨てるという風にしてた
(nilは存在しないファイル)

gosh -E "print *load-path*" nil 2>/dev/null

"-E"と"-e"を同時に使えばいいことに気づいた

gosh -e '(print *load-path*)' -E exit 

module-exportですべての手続きを調べられない。

make-hash-tableなどが抜け落ちてしまう。
apropos*1を使うと調べられる
(引数にはモジュール名(シンボル)、手続きの名前(シンボル)、正規表現が使える)
というわけで、現在の環境でのすべての手続きを知りたい場合にはこのようにする

(apropos #/.*/)

文字コードの変換

現在のディレクトリ以下のすべてのtextファイルをutf-8に変換

find ./ -name "*.txt" -print0|xargs -0 nkf --overwrite -w -Lu

*1:gauche.interactiveモジュールを読み込む必要があることがある。