• 締切済み

【至急】Rubyによるテキスト変換について

現在、大量のテキストを変換する業務がありまして、 これをRubyで一括処理するよう上司の方から言われております。 Rubyというプログラムをあまり理解できていない中での作業となり、 全く分からないことも多くございますので、ご先輩方のご教授を賜ればと思っております。 やりたいことですが、 既に変換する内容があります。  例:あ → い    う → え とあるとします。 おそらくRubyの変換記述としては、 _text = (_text.gsub(/あ/,'い')) _text = (_text.gsub(/う/,'え')) であっている思うのですが、 これをwindowsのbatで呼び出して、テキスト変換を自動的に処理する記述が知りたいです。 もし可能でしたら、 参照する rb の記述方法と それを実行する bat の記述方法を教えて頂きたく思っております。

  • efcs
  • お礼率9% (2/21)
  • Ruby
  • 回答数2
  • ありがとう数1

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

Rubyがインストールされているとして(されてないなら「Ruby Windows インストール」で検索)、 ARGF.each_line do |line| line.gsub!(/あ/,"い") line.gsub!(/う/,"え") puts line end というファイルを作り、BATからは、 ruby Rubyファイル名 処理対象ファイル名 > 出力ファイル名

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> もし可能でしたら、 > 参照する rb の記述方法と > それを実行する bat の記述方法を教えて頂きたく思っております。 http://doc.ruby-lang.org/ja/1.9.3/doc/spec=2frubycmd.html

関連するQ&A

  • Rubyによるテキスト変換について

    プログラムはあまり判りませんので、内容が不適切な場合には、ご容赦ください。 やりたいことは、複数のテキストを一括でリストに基づいて置換することをやりたいと思っております。 フリーのソフトを使えばっと言われるかも知れませんが、WindowsでもMacintoshでも同じようなことをやりたいと思っています。環境に問わない変換がしたいので。。。 Windowsでのイメージは、 テキストをBATファイルなどにドラッグすると、テキストが置換されるイメージです。 テキストは上書きされずに、同階層に「変換済」のフォルダを作成するか、テキストのファイル名を変更するなどが出来ればベストです。 同様に、Macintoshでも同様に動きが出来ればと思っております。 リストなどは「Windows」「Macintosh」の両方で共用したいので、 サーバに置いておいての運用をしたいと思っております。 変換は「gsub」で記述したいと思っております。 あまり素人的な内容で大変申し訳ないのですが、 何卒、よろしくお願いします。

  • テキストボックス内の文字の一括変換

    Office2003のテキストボックスのことですが、 テキストボックスが100個あります。 各テキストボックスには数式で「=ABC!A1」・「=ABC!A2」と 別のシートの値を参照しています。 別のシートを参照させたいので、 テキストボックス内のABCを一括で変換する方法はありますか? 実際は、シートABCとそれを参照しているテクストボックスのあるシートをもう1セット作りたいのです。 シートABCをコピーし、テキストボックスのあるシートをコピーしても、 テキストボックスのあるシートは元のシートABCを参照しています。 よって、一括変換ができればと思います。 宜しくお願いいたします。

  • [Ruby]外部ファイルの全角文字削除ができない原因を教えてください

    Rubyでの全角文字削除について質問です。 (環境:Windows XP,cygwin) コマンドライン引数で指定した外部ファイルを読み込んで全角文字を削除しようとすると、 全角文字が削除できないのですが、この原因がわかる方がいらしゃいましたら教えてください。 ・外部ファイル(Shift_JIS,改行=CR+LF) "7桁の| 郵便番号を| 入力して|,ください" ・Rubyスクリプト(cygwin上のため、EUC-JP,改行LF) #file.each_line do |line| # line.gsub!(/ /,'') # line.gsub!(/,/,'') # line.gsub!(/|/,'') #end 全角スペース、全角カンマ、全角パイプラインすべて削除できません。 半角文字は上記方法で削除できます。 しかし、スクリプト中に以下のような記述をすると、 #text = "7桁の 郵便番号を 入力して,ください" #print text.gsub(/ |,/,'') 「7桁の郵便番号を入力してください」と全角文字が削除されて表示されます。 教えてください。 よろしくお願いします。

  • rubyがInternalServerError

    こんばんは。 自鯖にて初めてrubyを動かそうとしたところInternalServerError(500エラー)が帰ってきます。 まず、httpd.confに ---------------------- AddHandler cgi-script .cgi .rb ---------------------- と追加しました(このため.htaccessは作成しなくていいと思う)。 コマンドラインにて[which ruby][whereis ruby]を使い、[/usr/bin/ruby]にrubyがあることはわかるのですが、エラーが出てしまいます。 [test.rb] ---------------------- #!/usr/bin/ruby print "Content-type: text/html\n\n" print "test" ---------------------- 上記プログラムには755のパーミッションを与えています。 上記のフォルダにはCGI実行権が与えられています。 上記のフォルダではCGIはしっかりと動きます。 上記のプログラムはコマンドライン上[ruby test.rb]では動きます。 また、他のサイトもいろいろ調べましたが #!/usr/bin/env ruby #!ruby #!/usr/local/bin/ruby どのいパスでもエラーがでました。 解決方法を教えてください。 サーバ ---------------------- CentOS 5.4Final Apache 2.2.3 Ruby 1.8.5 ----------------------

  • Ruby初心者です。

    Ruby初心者です。 Rubyから違うファイルを実行する場合について教えてください。 例えば、test.batに echo off echo. SET /p INPUT="Input string =>" echo %INPUT% pause のように記述されており これをRubyから実行し、 入力もRubyからするにはどうしたら良いでしょうか? つまり、Rubyからtest.batを実行し、自動で入力も行いたいです。 echoの内容もコマンドプロンプトから確認したいです。 また、RubyからBuildコマンドを実行したいと思います。 Buildは別プロセスで動いている状態になっていると思いますが、 Build中はRubyはどのような状態になるでしょうか? RubyからBuildした場合、Build動作が重くなることを懸念しています 有識者の方、よろしくお願いします。

    • ベストアンサー
    • Ruby
  • rubyのsub、gsubを使った文字列の置換について

    rubyによる文字列の置換でちょっと困っています。 例えば text = "ABCDABCEFG" という文字列があったとします。 その中の"ABC"の部分を"あいう"と置き換える場合 text = text.gsub(/ABC/, "あいう") で text = "あいうDあいうEFG" と置換できるはずです。 以上のような操作は問題ないのですが 置換対象と置換後の文字列を以下のように定義して subに放り込むということは出来ないのでしょうか。 置換前文字列:mae = "ABC" 置換後文字列:ato = "あいう" text = text.gsub(/mae/, ato) でもこれだと置換対象が"mae"という 文字列になってしまいますよね・・・ そもそもこのような機能はrubyにはないのでしょうか。 でも無いとかなり不便だと思いますが・・・ 現在何十万行のcsvファイルを数千行の置換文字列対応表 をつかっていっぺんに処理しようとしまして 以上のような方法をとろうとして詰まっています。 どなたか詳しい方ご教授よろしくお願いします。

  • 【Ruby】shift-jisのページの置換

    content="text/html; charset=shift-jis"のページを読み込んで、文字列の置換がしたいです。 #!/opt/local/bin/ruby require 'uri' require 'open-uri' url='http://hoge.hoge' open(url,'r:shift_jis'){|io| content = io.read content.gsub!(/ほげ/,'ホゲホゲ) print content } 上記の様に書いてみました。ソースコード自体はUTF-8で記述しました。 実行すると、 `gsub!': incompatible encoding regexp match (UTF-8 regexp with Shift_JIS string) (Encoding::CompatibilityError) となってしまいます。 どうしたらよいのでしょうか? rubyのバージョンは ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12] です。 以上、よろしくご指導のほど、お願い申し上げます。

    • ベストアンサー
    • Ruby
  • Rubyのファイルを実行できません(初心者)

    【環境】 デバイス:MacBookAir エディタ:CotEditor ***************** プログラミング初心者です。 MacにてRubyを独学で学ぼうと思い『たった2日でできるRuby』にある puts("Hello,Ruby.") という1行だけ書いたCotEditorで作成した hello.rb というファイルをターミナルで実行するステップで早くもつまづいております。 テキスト通り cd ruby と記述しても -bash: cd: ruby: No such file or directory とでてきてしまいます。 どなたかご教授お願いできますでしょうか? 画像なしですみません、何故か画像がアップできません。 ファイルサイズ全然余裕なんですけどもね・・・。

  • Rubyにおける正規表現(一致しない)

    Rubyを使って、テキスト処理をやっています。 どうしても、うまく行かないところがあります。 サジェスチョンをお願いします。 正規表現にて、 2つの条件フラグが成立していて、かつ、特定の文字列を含まないという条件です。 1行の内容は、textに入っています。 if (myFlag1==1) && (myFlag2==1) && (!/abc def/) then xxxxxxxx end (!/abc def/)は、perlでの表現です。Rubyでは、少なくとも (!/abc def/=~text) かな、と考えましたが、ダメでした。 (/abc def/!=text) でも、だめでした。 宜しくお願いいたします。

  • ruby 文字削除 位置指定の方法について

    a = "aaaacccaaacccaaaaaaaaaaaaaaarubyaaaaa" の場合、ruby以降(aaaaaa)を最後まで削除したい場合、 どのように記述したら良いですか? 実際の使用用途は、nokogiriでスクレーピングした、長いhtmlを整形するために使用したいです。 一致した文章(上記の場合、ccc)はgsubで削除できたのですが、指定した文字(上記の場合はruby)に一致した文字以降全てを削除という記載方法がわかりません。どなたか教えて下さいませ。 ■環境 linux ruby 1.9.3