Разделение файла с помощью AWK в Mac OS X - PullRequest
5 голосов
/ 02 ноября 2011

Я пытаюсь разбить файл с помощью AWK на определенный разделитель.Код awk выглядит следующим образом:

awk '/SEPARATOR/{n++}{print > "part" n ".txt" }' in.txt

этот код отлично работает на моих системах Linux.Но при запуске точно такого же кода в Mac OS X я получаю следующую ошибку:

awk: syntax error at source line 1
 context is
    /SEPARATOR/{n++}{print > "part" >>>  n <<<  ".txt" }
awk: illegal statement at source line 1

Я предполагаю, что это какая-то разница между awk, который поставляется с OS X и mawk из Linux.Удаление конкатенации строк в печати приводит к тому, что программа awk работает на обеих платформах, но я бы предпочел оставить префикс и сурфикс.Как мне написать программу awk, которая разбивает файл на разделитель на несколько пронумерованных частей и работает на обеих платформах?

1 Ответ

8 голосов
/ 02 ноября 2011

Вы можете исправить этот скрипт, используя переменную:

awk '/SEPARATOR/{n++}{filename = "part" n ".txt"; print >filename }' in.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...