コマンドラインではなく Automator で実行しようとしている .rb ファイルにいくつかの Ruby コードがあります。以下はコードのサンプルです (ファイル名は「filelines_revise.rb」です):
lines = IO.readlines('filelines_before_CAP.txt').map do |line|
array = line.split.each { |i| i.capitalize! }
if array.include?("Ws")
array.delete("Ws")
array[-1,0] = "Ws"
end
if array.include?("Es")
array.delete("Es")
array[-1,0] = "Es"
end
array_2 = array.join(" ")
array_2.gsub(/ Ws /, ", west side")
.gsub(/ ES /, ", east side")
end
File.open('filelines_after_CAP.txt', 'w') do |file|
file.puts lines
end
コマンドラインコマンド「ruby /Desktop/filelines_revise/filelines_revise.rb」を使用してこのコードを実行すると、コードは正常に実行されます。元の .txt ファイルを見つけ、各行を読み取り、コードの指示に従ってファイルを変更し、改訂された行を含む新しいファイルを作成します。
これをワークフローまたはアプリとして Automator に入れようとすると、Run Shell Script をフローに入れ、/bin/bash を Pass 入力: to stdin で使用し、コマンド「ruby /Desktop/filelines_revise/filelines_revise. rb」。スクリプトを実行しようとすると、次のエラーが表示されます。
Desktop/filelines_revise/filelines_revise.rb:18 構文エラー、予期しない '.'、Kend を期待
18行目は上記コードの2番目の.gsub「.gsub(/ES/,",east side")」です。
コマンド ラインのように Automator が Ruby 1.9.3 を使用していない可能性はありますか? おそらく私はこれについて別の方法で行くべきですか?前もって感謝します。