[#43271] rails がこけます — "Hideo Konami" <konami@...>

小波です。

15 messages 2007/03/18
[#43273] Re: rails がこけます — 山崎雄介 <y-yamasaki@...> 2007/03/19

山崎です。

[#43274] rubyスクリプト内で、unixコマンドを実行 — 上間 健 <mugenkai15@...> 2007/03/19

こんにちは、上間です。

[#43286] モジュールのinclude先の名前 — Sato Hiroshi <hirocy.f01@...>

hirocyです.

23 messages 2007/03/22
[#43290] system(wget url) について — Kyoko Sato <k.sato@...> 2007/03/22

お世話になっております。佐藤です。

[#43291] Re: system(wget url) について — Yukiharu Yabuki <yabuki@...> 2007/03/22

こんにちは

[#43293] Re: system(wget url) について — Kyoko Sato <k.sato@...> 2007/03/22

矢吹さん有難うございます。佐藤です。

[#43294] Re: system(wget url) について — Yukihiro Matsumoto <matz@...> 2007/03/22

まつもと ゆきひろです

[#43295] Re: system(wget url) について — Kyoko Sato <k.sato@...> 2007/03/22

まつもとゆきひろさん有難うございます。佐藤です。

[ruby-list:43282] Re: rubyスクリプト内で、unixコマ

From: KIMURA Koichi <kimura.koichi@...>
Date: 2007-03-19 10:08:32 UTC
List: ruby-list #43282
木村です。

既に解決したところに余計なことかもしれませんが

On Mon, 19 Mar 2007 14:53:33 +0900
上間 健 <mugenkai15@otc.ne.jp> wrote:

> > system "cat " + path + ' | tr "\r\n" "\n" > ' + path + "2"
> で問題解決できそうです。

これ、tr でなにをやろうとしているのでしょうか?
tr にこのパラメータを渡した場合

  \r → \n に置き換える
  \n → \n に置き換える(実質そのまま)

となって、(LF区切りとして)改行が二重になってしまいますけど
いいんですか?

どうも \r\n という並びを \n にしたいのじゃないかなあという感じ
を受けるのですけど、勘違いだったらごめんなさい。

もし \r を削除したいということなら
  tr -d '\r'
でいいと思います。

で再帰的に処理する方法についてですけど、こういう方法はどうでしょう?

require 'find'

def do_replace(x)
  dir =  File.dirname(x)
  src =  File.basename(x)
  dest = src + '2'
  
  #system "cd #{dir} ; cat #{src} | tr -d '\\r' > #{dest}"
  puts "cd #{dir} ; cat #{src} | tr -d '\\r' > #{dest}" # デバッグ用
end

target = ARGV.shift || '/path/to/dir/'

Find.find(target) do |x|
  do_replace x
end

上記のスクリプトでは system 経由で trを呼び出してますけど、もちろん
Ruby自体にやらせてもまったく問題はないです。

スクリプトを起動するときに、処理対象のディレクトリの名前を与えれば
よいです(上の例ではデフォルトのディレクトリを設定していますが)。

-- 
木村浩一


In This Thread