proglog

主にプログラミングに関する断片的メモ

howmsplit:コマンドライン、正規表現

現在、howmのメモは、
メモルートディレクトリの下に年次のディレクトリ。
その下に月次のディレクトリ。
その下に1日1ファイル。
という構造になっている。

年次ディレクトリを指定したら、その下にあるファイルを全て処理して欲しい。
このディレクトリ処理を、どうするか。

今のところ、、findコマンドを使って、

find ./2010 -name "[[:digit:]][[:digit:]][[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]-[[:digit:]][[:digit:]]\.howm" -exec howmsplit.scm {} \;

と実行するとしておく。

コマンドライン

gaucheはmain関数を定義しておくと、引き数を渡してくれる仕様らしい。

#!/usr/local/bin/gosh

(define (main args)
  (if (null? (cdr args))
      (print "null"))
      (print (car (cdr args))))

こんな感じのことをすれば、findが渡してくれるファイル名を取り出せそう。

正規表現

タイムヘッダがあるかどうかの判定に使う。
perlの$string =~ /\d\d\d\d/に相当する書き方は、(rxmatch #/\d\d\d\d/ string)で、結果が#fかオブジェクト。

(let1 rxobj (rxmatch #/\d\d\d\d/ "1234")
     (print (and rxobj (rxobj 0))))

こんな感じで後方参照できるみたい。