2009-08-09 25 views
0

Wie würde ich diesen awk Befehl verwenden:Verwenden mit NSTask awk

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 dieses:

/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 :)

Antwort

2

Zuerst entfernen Sie einfache Anführungszeichen: NSTask nicht eine Shell invoice, die sie interpretieren könnte. Dies ist die Ursache für den Fehler, den Sie erhalten.

Zweitens, awk nimmt einen Dateinamen als letztes Argument, keine Zeichenfolge. Wenn Sie wirklich NSTask und awk benötigen, wäre der Shell-Befehl echo string | awk ..., was zwei NSTask und eine NSPipe beinhalten würde.

Schließlich, für die Kettenmanipulation, verwenden Sie stattdessen NSString, wie von dreamlax erwähnt.

2

Was versuchen Sie zu erreichen? Sie sollten awk nicht starten müssen, um eine String-Manipulation durchzuführen.

Wenn Sie versuchen, Zeilen aus einer Zeichenfolge zu entfernen, versuchen Sie etwas wie NSString getLineStart:end:contentsEnd:forRange: Methode.