2012-05-28 19 views
3

我想傳遞兩個變量AWK,以替換字(-v VAR1)與特定行空間(」「)(-v var2)。當我運行它時,沒有任何東西被我想要的線所取代。AWK在特定線槽傳遞變量替換模式

我的第一個方法來做到這一點是:

palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub("var2"," ")}{print }' Countries > tmp 

上的文件「國家」,與內容是:

usa 
usa 
colombia 
spain 
betina 
+0

在描述中,你說'var1'是單詞,'var2'是行,但是在命令中你反過來使用它們。 –

+0

而不是明確寫出「{print}」的動作,而是使用'1'的模式更爲習慣。例如''NR == var1 {sub(「var2」,「」)} 1'' –

回答

5

刪除周圍var2引號,你應該是不錯的。

palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub(var2," ")}{print }' file 
+0

Yeap,就是這樣!感謝您的幫助! –