我试图使用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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top