[英]Ruby: how to match a double quote in a regexp
我试图使用Ruby one衬里从文本文件中删除一些双引号(“)字符,但收效甚微。
我尝试了以下内容和一些变体,但均未成功。
ruby -pe 'gsub(/\"/,"")' < myfile.txt
这给了我以下错误:
-e:1: Invalid argument - < (Errno::EINVAL)
我在Win机器上运行Ruby:
红宝石1.8.6(2007-09-24补丁程序级别111)[i386-mswin32]
任何想法?
看起来像cmd引用地狱-请注意,在cmd shell中单引号是没有意义的。
ruby -pe "gsub(34.chr,'')" < filename
但这可能更好:
ruby -pe "$_.delete!(34.chr)" < filename
怎么样:
ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt
ruby -pe 'gsub(/\"/,"")' myfile.txt
听起来问题出在外壳上。
您的错误消息来自Ruby,因此看来Ruby正在接收<
作为参数。 这意味着外壳不执行任何重定向。
我没有Windows机器,所以我会仔细检查您是否首先正确地完成了重定向。 第一次检查时,我认为< myfile.txt
应该是<myfile.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.