Ruby:如何匹配regexp中的双引号

Ruby:如何匹配regexp中的双引号,ruby,regex,escaping,gsub,Ruby,Regex,Escaping,Gsub,我正在尝试使用Ruby one liner从文本文件中删除一些双引号(“)字符,但收效甚微 我尝试了以下方法和一些变体,但没有成功 ruby -pe 'gsub(/\"/,"")' < myfile.txt ruby-pe'gsub(/\“/,”“)”

我正在尝试使用Ruby one liner从文本文件中删除一些双引号(“)字符,但收效甚微

我尝试了以下方法和一些变体,但没有成功

ruby -pe 'gsub(/\"/,"")' < myfile.txt
ruby-pe'gsub(/\“/,”“)”
这给了我以下错误:

-e:1: Invalid argument - < (Errno::EINVAL)
-e:1:无效参数-<(Errno::EINVAL)
我在Win机器上运行Ruby:

ruby 1.8.6(2007-09-24 patchlevel 111)[i386-mswin32]

有什么想法吗?

怎么样:

ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt

ruby-e'put$stdin.read.gsub(34.chr,“”)听起来问题出在shell上


您的错误消息来自Ruby,因此Ruby似乎正在接收
看起来像是cmd引用地狱——请注意,单引号在cmd shell中是没有意义的

ruby -pe "gsub(34.chr,'')" < filename
ruby-pe“gsub(34.chr,”)”
但这可能更好:

ruby -pe "$_.delete!(34.chr)" < filename
ruby-pe“$\.delete!(34.chr)”
这也不行。我需要“抱歉,但我没有得到”将输入重定向到脚本“我的意思是,输入来自一个文件,并且“有一些带有反斜杠和cmd.exe的内容无法正常运行。这似乎不是原因。对于非特殊字符,它可以正常工作。需要更多数据:您是否使用cmd shell?
ruby -pe "$_.delete!(34.chr)" < filename