Использование awk с NSTask
-
12-09-2019 - |
Вопрос
Как бы я использовал эту команду awk:
awk 'NR>1{print $1}' string-to-modify
с НСТАском?Я уже пробовал установить /usr/bin/awk в качестве пути запуска, 'NR>1{print $1}'
в качестве аргумента, затем строку, которую нужно изменить в качестве другого аргумента, но все, что я получаю, это следующее:
/usr/bin/awk: syntax error at source line 1
context is
>>> ' <<<
/usr/bin/awk: bailing out at source line 1
Любая помощь будет оценена :)
Решение
Сначала удалите одинарные кавычки: NSTask
не вызывает оболочку, которая могла бы их интерпретировать.Это причина ошибки, которую вы получаете.
Второй, awk
принимает в качестве последнего аргумента имя файла, а не строку.Если вам действительно нужны NSTask и awk, команда оболочки будет такой: echo string | awk ...
, который будет включать два NSTAsk и NSPipe.
Наконец, для манипуляций со строками вместо этого используйте NSString, как упоминалось в дримлакс.
Другие советы
Чего вы пытаетесь достичь?Вам не нужно запускать awk для выполнения манипуляций со строками.
Если вы пытаетесь удалить строки из строки, попробуйте использовать что-то вроде NSString. getLineStart:end:contentsEnd:forRange:
метод.