AWK通过传递变量替换特定行的模式

Ano*_*ist 3 variables awk line

我试图将两个变量传递给awk,以便在特定行(-v var2)中用空格("")替换一个单词(-v var1 ).当我运行它时,在我想要的线路上没有任何东西被替换.

我的第一个做法是:

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

"国家"文件中,内容为:

usa
usa
colombia
spain
betina
Run Code Online (Sandbox Code Playgroud)

jay*_*ngh 5

删除周围的报价var2,你应该是好的.

palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub(var2," ")}{print }' file
Run Code Online (Sandbox Code Playgroud)