如何理解下面的awk命令?如何理解这个nawk命令
nawk 'a-- >= 0; /datamart_extractrelations_static/ {a = 30}' app.log
给出一个awk程序具有的格式:
pattern { action }
什么是 'A--> = 0' 呢?何时执行此操作?
如何理解下面的awk命令?如何理解这个nawk命令
nawk 'a-- >= 0; /datamart_extractrelations_static/ {a = 30}' app.log
给出一个awk程序具有的格式:
pattern { action }
什么是 'A--> = 0' 呢?何时执行此操作?
该命令是相同的:
nawk 'a-- >= 0 {print}; /datamart_extractrelations_static/ {a = 30}' app.log
如果a-- >= 0
awk
将打印当前行是因为print
是如果没有指定动作将被执行在awk
的默认操作。
其结果是,该命令包含模式的行之后将打印30ths线datamart_extractrelations_static
为了更好地理解这一点,你可以简单地尝试使用以下命令:
awk '1' input
由于1
会始终评估为true
,默认操作是print
awk
打印每一行输入都不变。
在输入中找到datamart_extractrelations_static后,有人没有完全理解打印30行的习语。请参阅Printing with sed or awk a line following a matching pattern,并专门查看习惯用语,在那里“为了正确的代码打印N个记录”。您发布的代码缺少a
(其名称为计数变量a
???)的领先测试,以确保var对于巨大文件不会减少到零以下,并最终环绕并再次显示为正值。
哇。这是现象!感谢分享。 – AlexL
很好的答案。谢谢。 – AlexL