2 Stimmen

Scala Prozess mit Leerzeichen funktioniert nicht richtig

Ich habe einen Scala-Prozessbefehl wie unten, um das Linux-Bash egrep-Kommando zu verwenden. Aber die Suchergebnisse sind nicht gleich im Terminal und in meiner von Scala generierten Datei. Scala-Ergebnisse enthalten alles, was "new" und "Exception" hat, während ich möchte, dass die Ausgabe nur Zeilen enthält, die "new Exception" enthalten. Fehlt mir hier etwas? Bitte helfen Sie

    if (("egrep -r -I -n -E \"*new Exception*\" /mysource/" #| 
            "grep -v .svn").! == 0) {
        out.println(("egrep -r -I -n -E \"*new Exception*\" /mysource/" #| 
            "grep -v .svn").!!)
    }

3voto

Michał Kosmulski Punkte 9530

Die Dokumente besagen (unter "Was ausgeführt werden soll und wie"): Jeder Prozess wird implizit entweder aus einem String erstellt, bei dem die Argumente durch Leerzeichen getrennt sind - keine Escape-Sequenz für Leerzeichen ist möglich - oder aus einer scala.collection.Seq, bei der das erste Element den Befehlsnamen darstellt und die restlichen Elemente Argumente dazu sind. In letzterem Fall können Argumente Leerzeichen enthalten

Also, anscheinend, wenn Sie der Befehlszeile ein einzelnes Argument mit Leerzeichen übergeben müssen, wie new Exception, müssen Sie den Prozess-Builder aus einem Seq anstelle eines einzelnen String erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X