有人能帮我解决这个语法问题吗?
bash-4.2$ cat test_gawk | gawk -F, '{if($1 ~/STOP/ && ($21 ~ /722/) print $21, " "$34, " "$31, " "$64}' | sort -n | uniq -c | sort -n当需要打印输出时,我似乎收到了语法错误。
发布于 2021-05-10 23:19:48
实际问题是由if-语句中第二个条件的伪开(引起的.
正如人们在上述评论中已经指出的那样:
在awk中,if-语句的形式通常是
if(){}。
所以,您自己的调用需要看起来像这个
gawk -F, '{if($1 ~/STOP/ && $21 ~ /722/){print $21, " "$34, " "$31, " "$64}}'不是这个
gawk -F, '{if($1 ~/STOP/ && $21 ~ /722/) print $21, " "$34, " "$31, " "$64}'另一个方面的评论是:如果您发现自己使用的是带有单个文件名的cat,那么您很可能做错了。因此,更好的选择是:
gawk -F, '{if($1 ~/STOP/ && ($21 ~ /722/){print $21, " "$34, " "$31, " "$64}}' test_gawk | sort -n | uniq -c | sort -nhttps://stackoverflow.com/questions/67475385
复制相似问题