首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何理解nawk命令

如何理解nawk命令
EN

Stack Overflow用户
提问于 2015-04-17 15:23:06
回答 2查看 36关注 0票数 0

如何理解下面的awk命令?

代码语言:javascript
复制
nawk 'a-- >= 0; /datamart_extractrelations_static/ {a = 30}' app.log

给定一个awk程序的格式为:

代码语言:javascript
复制
pattern { action }

“a-- >= 0”是做什么的?这个操作什么时候执行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-17 15:31:25

该命令与以下命令相同:

代码语言:javascript
复制
nawk 'a-- >= 0 {print}; /datamart_extractrelations_static/ {a = 30}' app.log

如果是a-- >= 0awk将打印当前行,因为printawk中的默认操作,如果没有指定操作,将执行该操作。

因此,该命令将在包含模式datamart_extractrelations_static的一行后面打印第30行。

要更好地理解这一点,只需尝试以下命令:

代码语言:javascript
复制
awk '1' input

因为1总是计算为true,默认操作是print,所以awk打印输入的每一行都没有改变。

票数 3
EN

Stack Overflow用户

发布于 2015-04-17 15:57:33

在输入中找到datamart_extractrelations_static后,有人没有完全理解打印30行的成语。请参阅Printing with sed or awk a line following a matching pattern,并特别查看成语e,那里有“打印N个记录后的某些模式”的正确代码。您发布的代码缺少了a上的领先测试(谁命名了count变量a??)以确保变量不会对一个大型文件持续递减到零以下,并最终环绕起来,并再次显示为正。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29703318

复制
相关文章

相似问题

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