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