如何理解下面的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