#!/usr/bin/gawk -f # 環境変数 EDITOR に使用するエディタを設定しておくこと。 # 曲名の文字コードを変換するなら conv を適当に設定すること。 BEGIN { if (ARGC != 2) { print "Params : " exit(2) } conv = " | nkf -e" h2pl = ARGV[1] "/h2.pl" info = ARGV[1] "/info/" "date +'%s'" | getline close("date +'%s'") tmpfile = "/tmp/" $0 getline < h2pl # 曲数 # ファイル名を読み込み。 while ((getline filename < h2pl) > 0) { s = filename # sub(/\.[^.]*$/, "", s) printf substr(s " ", 1, 14) > tmpfile # ファイル名だけじゃわからんので、infoから曲名を。 # h2.pl内のファイル名は大文字に変換されているので小細工。 "ls -1 " ARGV[1] "/info/ | grep -i -x " filename | getline filename "./prh205.sh title " ARGV[1] "/info/" filename conv | getline close("./prh205.sh title " ARGV[1] "/info/" filename conv) print $0 > tmpfile } close(h2pl) close(tmpfile) # 編集 system(ENVIRON["EDITOR"] " " tmpfile) # 再読み込み n = 0 while ((getline < tmpfile) > 0) { names[n++] = $1 } close(tmpfile) # いちおうバックアップを作っておく。 system("cp " h2pl " " ARGV[1] "/h2.bak") # h2.pl を更新。 print n > h2pl for (i = 0 ; i < n ; i++) { print names[i] > h2pl } close(h2pl) # テンポラリファイルを削除。 system("rm " tmpfile) system("rm " tmpfile ".bak 2> /dev/null") exit }