我在 .rb 文件中有一些 Ruby 代码,我试图使用 Automator 运行,而不是命令行。这是代码示例(文件名是“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 时,我将运行 Shell 脚本放入我的流程中,使用 /bin/bash 和 Pass 输入:到标准输入,然后是命令“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?也许我应该以不同的方式解决这个问题?提前致谢。