2011-10-06 40 views
1

招呼每一個我剛開始學習的awk,我面臨的一個問題 這裏是我的數據瞭如何在awk中使用forloops數據庫列

james   31 
    mary   22 
    john   28 

我想打印一些這樣的事。「瑪麗年齡是22「使用循環我寫了這個代碼

{ 
    for (i=1 ;i<=FNR ;i++) 
    { 
    FNR == i {print $1 " age is " $2} 
    } 
} 

的擊打它給我的錯誤在支架

AWK:awk_script.awk:5號線:語法錯誤達到或NEA環R { AWK:awk_script.awk:7號線:在語法錯誤或接近}

請你告訴我在哪裏,我錯了

回答

1

您需要刪除的for循環。 Awk自動執行此操作。

指定的文件叫名字:

james,31 
mary,22 
john,28 

你只需要做到這一點的命令行:

awk -F ',' 'FNR == 2 {print $1 " age is " $2}' names 

這會給

mary age is 22 
1

你沒有爲此做複雜的邏輯。看到這個例子:

kent$ echo " james   31 
dquote>  mary   22 
dquote>  john   28 
dquote> "|awk 'BEGIN{OFS=" age is "}$1=$1' 

james age is 31 
mary age is 22 
john age is 28