Frage
Wie würde ich diesen awk Befehl:
awk 'NR>1{print $1}' string-to-modify
mit NSTask? Ich habe bereits versucht Einstellung / usr / bin / awk als Startpfad, 'NR>1{print $1}'
als Argument, dann die Zeichenfolge als ein weiteres Argument zu ändern, aber alles, was ich bekommen, ist dies:
/usr/bin/awk: syntax error at source line 1
context is
>>> ' <<<
/usr/bin/awk: bailing out at source line 1
Jede mögliche Hilfe würde geschätzt werden:)
Lösung
Entfernen Sie zuerst einfache Anführungszeichen: NSTask
keine Schale nicht invoque, die sie interpretieren könnte. Dies ist die Ursache für den Fehler, den Sie erhalten.
Zweitens nimmt awk
einen Dateinamen als letztes Argument, nicht einen String. Wenn Sie wirklich NSTask und awk benötigen, würde der Shell-Befehl echo string | awk ...
werden, die zwei NSTask verbunden wäre und eine NSPipe.
Schließlich für String manupulation verwenden NSString statt, wie erwähnt von dreamlax .
Andere Tipps
Was wollen Sie erreichen? Sie sollten nicht awk starten müssen String-Manipulation durchzuführen.
Wenn Sie versuchen, Zeilen aus einer Zeichenfolge zu entfernen, versuchen, etwas mit wie NSString der getLineStart:end:contentsEnd:forRange:
Methode.