您好每一個我想問一下,我非常瞭解括號{}在AWK很困惑就像我已經寫了代碼哪裏把括號AWK
{
FNR == 3 { print $1 " age is " $2 }
}
,但它給了我錯誤的外支架但沒有給出錯誤周圍的print語句括號爲什麼會這樣:/還有如下代碼
{
s = $1
d = $2
no = $1 + $2
{print no}
}
當我刪除外括號顯示我的論點,LOC的次數爲什麼是我非常混淆善意幫助我 謝謝
您好每一個我想問一下,我非常瞭解括號{}在AWK很困惑就像我已經寫了代碼哪裏把括號AWK
{
FNR == 3 { print $1 " age is " $2 }
}
,但它給了我錯誤的外支架但沒有給出錯誤周圍的print語句括號爲什麼會這樣:/還有如下代碼
{
s = $1
d = $2
no = $1 + $2
{print no}
}
當我刪除外括號顯示我的論點,LOC的次數爲什麼是我非常混淆善意幫助我 謝謝
awk腳本由命令組成。每個命令有一個圖案和動作:
pattern1 { action1 }
pattern2 { action2 }
對於輸入的每一行,AWK測試每個圖案和當圖案是真正執行相應的動作。
該模式可以省略,在這種情況下,它被視爲始終爲真,併爲每一行執行操作。同樣,該行爲可以省略,在這種情況下,它被視爲print
;這使您可以輕鬆使用awk來選擇線條而不更改線條。
考慮到這個結構,我們可以解釋給出的例子。第一個是適用於每一行的單一行爲。但是這個動作並不完整 - 如果你移除了外括號,它就變成了一個獨特的模式和動作,這兩者都被正確地構造了。
第二個例子也適用於每一行。它從行中取出前兩個(空白分隔)字段,將它們添加爲數字,並打印結果。移除外括號可以爲你提供三種沒有相應動作的模式,以及一種沒有模式的動作。因此,模式---這是作業的價值,並且通常是真實的---具有通常被調用的隱含的print
。同樣,該操作總是被調用,打印值爲no
。
非常感謝謝謝最好的解釋:) – mainajaved
我沒有在第二種情況下找到你對觀察行爲的描述,非常清楚。一些示例輸出和所需的輸出可能會使事情變得更加清晰。 –