スクリプト

上の雑記で書いたように、一度書いたnamespaceを全て削除しなくてはいけなくなりました。幸い、閉じ括弧の方にもコメントで"namespace tetsuya32"と書いていたため、スクリプトで自動削除できそうです。DOSの頃からコマンドラインは使っているのですが、スクリプトにはだいぶ疎いです。四苦八苦しながらネットで調べて、次のようなシェルスクリプトを作ってみました。

#! /usr/bin/csh
if ( $#argv != 0 ) then
  set dir = $argv[1]
  cd $dir
  foreach file (*)
    if (-f $file) then
      sed -e '/namespace tetsuya32/d' $file  > tmp
      mv tmp $file
    endif
  end
endif

指定したディレクトリ内にある全てのファイルから、"namespace tetsuya32"を含む行を削除するスクリプトです。まず、sedの使い方が思い出せない。次に、foreachの使い方。そして、リダイレクトで上書きするとファイルが消えるという現象。散々苦労して上記のようなスクリプトになったわけです。絶対に手作業でチマチマ消した方が早かったでしょうが、これも今後の勉強のため。スクリプトくらい使えなくちゃまずいですよね。sedperlで置き換えられるだろうから、まずはシェルスクリプトperlを覚えたいと思います。

今回参考にさせていただいたサイトはこちら。