2

Rubyワンライナーを使用してテキストファイルから二重引用符( ")文字を削除しようとしていますが、ほとんど成功していません。

私は以下といくつかのバリエーションを試しましたが、成功しませんでした。

ruby -pe 'gsub(/\"/,"")' < myfile.txt

これにより、次のエラーが発生します。

-e:1: Invalid argument - < (Errno::EINVAL)

WinマシンでRubyを実行しています。

ruby 1.8.6(2007-09-24パッチレベル111)[i386-mswin32]

何か案が?

4

4 に答える 4

5

cmd 引用符地獄のように見えます -- cmd シェルでは一重引用符は無意味であることに注意してください。

ruby -pe "gsub(34.chr,'')" < filename

しかし、これはおそらくより良いです:

ruby -pe "$_.delete!(34.chr)" < filename
于 2009-10-05T14:48:49.780 に答える
1

どうですか:

ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt
于 2009-10-05T13:56:42.423 に答える
0
ruby -pe 'gsub(/\"/,"")' myfile.txt
于 2009-10-05T13:59:55.087 に答える
0

問題はシェルにあるようです。

あなたのエラーメッセージは Ruby からのものなので、Ruby は を<引数として受け取っているようです。これは、シェルがリダイレクトを行っていないことを意味します。

私は手元に Windows マシンを持っていないので、最初にリダイレクトが正しく行われていることを再確認します。最初の検査では< myfile.txt<myfile.txt

于 2009-10-05T14:26:48.247 に答える