在Mac OS X上使用AWK拆分文件

时间:2011-11-02 12:30:38

标签: linux macos awk

我正在尝试在特定分隔符上使用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

我认为这是OS X附带的awk和Linux上的mawk之间的某种差异。删除打印中的字符串连接会使awk程序在两个平台上都能正常工作,但我更喜欢保留前缀和周期。如何编写一个awk程序,将分隔符上的文件拆分成多个编号的部分并在两个平台上运行?

1 个答案:

答案 0 :(得分:8)

您可以使用变量修复此脚本:

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