红宝石:如何在正则表达式匹配一个双引号
题
我试图使用Ruby的一个衬层以除去从文本文件中的一些双引号(“)字符,但收效甚微。
我曾尝试以下内容,一些变型中,没有成功。
ruby -pe 'gsub(/\"/,"")' < myfile.txt
这使我有以下错误:
-e:1: Invalid argument - < (Errno::EINVAL)
我一个双赢的机器上运行红宝石:
<强>红宝石1.8.6(2007-09-24 PATCHLEVEL 111)[I386-mswin32] 强>
任何想法?
解决方案
看起来像CMD引用地狱 - 。注意,单引号是在cmd壳无意义
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的接收<
作为参数。这意味着外壳没有做任何重定向。
我没有Windows机器方便的,所以我会仔细检查,你首先得到重定向。第一次检查我认为< myfile.txt
应当<myfile.txt
不隶属于 StackOverflow