Question

J'essaie de supprimer certains guillemets doubles (") d'un fichier texte à l'aide d'une doublure Ruby, avec peu de succès.

J'ai essayé ce qui suit, ainsi que quelques variantes, sans succès.

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

Cela me donne l'erreur suivante :

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

J'utilise Ruby sur une machine Win :

ruby 1.8.6 (2007-09-24, niveau de correctif 111) [i386-mswin32]

Une idée?

Était-ce utile?

La solution

On dirait que cmd cite l'enfer - notez que les guillemets simples n'ont aucun sens dans le shell cmd.

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

mais c'est probablement mieux :

ruby -pe "$_.delete!(34.chr)" < filename

Autres conseils

Que diriez-vous:

ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt
ruby -pe 'gsub(/\"/,"")' myfile.txt

On dirait que le problème vient du shell.

Votre message d'erreur vient de Ruby, il semble donc que Ruby reçoive le < comme argument.Cela signifie que le shell n'effectue aucune redirection.

Je n'ai pas de machine Windows à portée de main, je vérifierais donc d'abord que vous obtenez la bonne redirection.Lors de la première inspection, je pense que < myfile.txt devrait être <myfile.txt

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top