首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GAWK语法问题

GAWK语法问题
EN

Stack Overflow用户
提问于 2021-05-10 17:52:23
回答 1查看 61关注 0票数 0

有人能帮我解决这个语法问题吗?

代码语言:javascript
复制
bash-4.2$ cat test_gawk | gawk -F, '{if($1 ~/STOP/ && ($21 ~ /722/) print $21, " "$34, " "$31, " "$64}' | sort -n | uniq -c | sort -n

当需要打印输出时,我似乎收到了语法错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-10 23:19:48

实际问题是由if-语句中第二个条件的伪开(引起的.

正如人们在上述评论中已经指出的那样:

在awk中,if-语句的形式通常是

if(){}

所以,您自己的调用需要看起来像这个

代码语言:javascript
复制
gawk -F, '{if($1 ~/STOP/ && $21 ~ /722/){print $21, " "$34, " "$31, " "$64}}'

不是这个

代码语言:javascript
复制
gawk -F, '{if($1 ~/STOP/ && $21 ~ /722/) print $21, " "$34, " "$31, " "$64}'

另一个方面的评论是:如果您发现自己使用的是带有单个文件名的cat,那么您很可能做错了。因此,更好的选择是:

代码语言:javascript
复制
gawk -F, '{if($1 ~/STOP/ && ($21 ~ /722/){print $21, " "$34, " "$31, " "$64}}' test_gawk | sort -n | uniq -c | sort -n
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67475385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档