繁体   English   中英

Ruby:如何在正则表达式中匹配双引号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM