【发布时间】:2018-11-14 20:15:33
【问题描述】:
我有一个由 xyz 坐标组成的文本文件,每个坐标都定义了斜坡的特定深度轮廓。 所有这些行都存储在一个文件中,每个轮廓用“>”
分隔文件如下:
>
x1 y1 z1
x2 y2 z2
>
x3 y3 z3
...
该文件巨大且笨重,我想打印出沿每个轮廓的第 7 个点并将其通过管道传输到一个制表符分隔的新文件中。
我的代码如下所示:
awk -v OFS='\t' -v count=1 '{if ($1 == ">") {count/=count}; else if (count%7 == 0) {{count+=1} print $0}; else {count+=1}}' infile > outfile
我不断收到一条错误消息,上面写着
awk: syntax error at source line 1
context is
{if ($1 == ">") {count/=count}; >>> else <<< if (count%7 == 0) {{count+=1}; print $0}; else {count+=1}}
awk: illegal statement at source line 1
我花了一段时间检查我的语法和括号,看起来没问题,我可能只是在变量重新分配时遗漏了一些东西?
【问题讨论】:
-
去掉
}和else之间的;,即。if(1) something(); else但if(1) { some(); thing() } else所以你基本上可以:if ($1 == ">") count/=count; else或if ($1 == ">") {count/=count} else
标签: if-statement awk syntax