1
通過一個awk教程去,我碰到這條線當awk腳本在大括號外包含代碼時,這意味着什麼?
substr($0,20,5) == "HELLO" {print}
打印一行是否有「HELLO」字符串起始於20字符。
現在我認爲花括號在awk腳本開始時是必要的,並且這個工作可以使用'if',但它仍然沒有工作。
有些人可以解釋它如何評估?
通過一個awk教程去,我碰到這條線當awk腳本在大括號外包含代碼時,這意味着什麼?
substr($0,20,5) == "HELLO" {print}
打印一行是否有「HELLO」字符串起始於20字符。
現在我認爲花括號在awk腳本開始時是必要的,並且這個工作可以使用'if',但它仍然沒有工作。
有些人可以解釋它如何評估?
如果您有:
{ action }
...那麼該動作在每一行運行。相反,如果您有:
condition { action }
...然後該操作僅針對條件爲真的行運行。
最後,如果你有只一個條件,則默認操作爲print
:因此
NR % 2 == 0
...將打印每隔一行。
你同樣可以擁有多對在一個腳本:
condition1 { action1 }
condition2 { action2 }
{ unconditional_action }
...,也可以有BEGIN
和END
塊,這在執行的開始和結束時運行。
正如回答指出'{print}'部分在這裏是多餘的 –
停止猜測語法,並閱讀Arnold Robbins編寫的Effective Awk Programming第4版。 –