Ruby: Wie kann ein doppeltes Anführungszeichen in einem regulären Ausdruck übereinstimmen

StackOverflow https://stackoverflow.com/questions/1520170

  •  19-09-2019
  •  | 
  •  

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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top