2017-04-05 52 views
-2
awk 'if(NF==7){print$1":"$2":"$4":"$5, $7, $6}else {print$1":"$2":"$3":"$4, $6, $5}' 
awk: if(NF==7){print$1":"$2":"$4":"$5, $7, $6}else {print$1":"$2":"$3":"$4, $6, $5} 
awk:^syntax error 

這是什麼語法錯誤?箭頭指向如果awk我的語法有什麼問題?

+2

如果在'{}' –

+2

或者'awk'NF == 7 {print $ 1「:」$ 2「:」$ 4「:」$ 5,$ 7,$ 6; next} {print $ 1「:」$ 2「 :「$ 3」:「$ 4,$ 6,$ 5}」 – jlliagre

回答

0

awk是一系列condition {action}語句。

if是無效條件。您需要附上,在動作框:

awk '{if(something) { do something } else { do something else }}' 

或者,您可以爲NF==7例如條件離開關if

awk 'NF==7{ do something; next } { do something else }' 

二是用於測試NF更地道awk,其他內置變量或其他變量。

0

重寫代碼爲:

awk '{print $1":"$2":" (NF==7 ? $4":"$5, $7, $6 : $3":"$4, $6, $5)}' 

,並開始閱讀有效AWK編程,第4版,由阿諾德·羅賓斯。