MAC OS Awk-生成带有变量的文件时出现语法错误

时间:2018-10-12 14:23:03

标签: macos awk

以下命令根据标准提取文件 temp_practice.txt 并将其分为几个文件 temp_output_1.txt,temp_output_2.txt等... > $ 5〜“?”

  

awk -v n = 1'{print>“ temp_output_” n“ .txt”} $ 5〜“?” {n ++}'temp_practice.txt

在Ubuntu上,它运行非常顺畅,我得到的正是我想要的。但是,当我尝试在Mac上运行相同的命令时,出现以下语法错误:

awk: syntax error at source line 1
context is
{print > "temp_output_" >>>  n <<<  ".txt"} $5~"?" {n++}
awk: illegal statement at source line 1

使用n变量生成文件名似乎存在语法错误。我知道Linux和Mac上的awk之间存在差异,但是我找不到有关该特定问题的任何信息。我需要使用其他命令还是只需要在现有行中添加一些内容?

1 个答案:

答案 0 :(得分:0)

I told you about this exact issue previously。您的下一个问题与您的问题无关。 ?是一个正则表达式元字符,意为zero-or-one repetitions of the preceding expression,但请查看您的正则表达式/?/-您没有前面的表达式。因此,某些awks可能会将?当作文字,而另一些可能会产生语法错误。要匹配文字?(我假设这是您要尝试执行的操作),请根据具体情况匹配$5~/\?/$5~/[?]/index($5,"?")甚至$5=="?"您的输入和要求。