空白を削除する

「KIfu for Windows」を使って、KI2形式で棋譜を出力すると、

▲7六歩    △3四歩    ▲2六歩

このように出力される。この棋譜には、無駄に空白が多い気がする。だから空白を削除したいのだけど、いちいち手作業でするのは面倒だ。
 ということで、空白を削除するソフトを探した。けど、見つからなかった。代わりに、空白行を削除するRubyの次のようなコードが見つかった。

i = open("a.txt")
s = i.read
i.close
o = open("b.txt", "w")
o.puts s.gsub(/\n(\s| )*\n/, "\n")
o.close

以前Rubyを落としてあったので、試しに動かそうとしたら、ちゃんと動いた。よくわからないけど、このコードを真似して、ネットで調べながら、空白を削除するコードを書こうとした。

i = open("a.txt")
s = i.read
i.close
o = open("b.txt", "w")
o.puts s.delete("\s")
o.close

 これを動かしたら、ちゃんと動いた。次に、delete("\s")の所をstripにすれば、改行も消せるのかと思って試した。しかしすると、「空白が削除されたテキストの次に、改行が削除されたテキストが続くテキストファイル」が出てきた。よくわからない。
 ところで、わざわざ新しいテキストファイルを作る必要もないので、テキストファイルを書き換えるプログラムが欲しい。だから書こうとしたけど、うまく行かなかった。あと、コードに色を付けると、せっかく地味な色に統一してたこのブログが、目が疲れるブログになってしまった。


(6/21 追記)
翌日試したら、stripのほうも正常に動いた。けど、またいじってるうちにおかしくなった。そのあと、しばらく放っておいてまた試したら正常に動いた。