Ruby: Wie kann ein doppeltes Anführungszeichen in einem regulären Ausdruck übereinstimmen
Frage
Ich versuche, einige doppelten Anführungszeichen ( ") Zeichen aus einer Textdatei mit einem Ruby-Motto, mit wenig Erfolg zu entfernen.
Ich habe folgendes versucht, und einige Variationen, ohne Erfolg.
ruby -pe 'gsub(/\"/,"")' < myfile.txt
Das gibt mir die folgende Fehlermeldung:
-e:1: Invalid argument - < (Errno::EINVAL)
Ich bin mit Ruby on einer Win-Maschine:
rubin 1.8.6 (2007-09-24 Patchlevel 111) [i386-mswin32]
Jede Idee?
Lösung
Sieht aus wie cmd zitiert Hölle -. Beachten Sie, dass einfache Anführungszeichen sinnlos in der cmd-Shell
ruby -pe "gsub(34.chr,'')" < filename
, aber das ist wahrscheinlich besser:
ruby -pe "$_.delete!(34.chr)" < filename
Andere Tipps
Wie wäre:
ruby -e 'puts $stdin.read.gsub(34.chr,"")' <myfile.txt
ruby -pe 'gsub(/\"/,"")' myfile.txt
Sounds wie das Problem mit der Schale ist.
Ihre Fehlermeldung ist von Ruby, so scheint es, Ruby den <
als Argument erhält. Das heißt, die Schale ist jede Umleitung nicht tun.
Ich habe nicht eine Windows-Maschine praktisch so dass ich nochmal genau überprüfen würde, dass Sie die Umleitung rechts erstes sind immer. Auf den ersten Blick denke ich, die < myfile.txt
<myfile.txt
sein sollte