Variables AWK替换特定线槽传递变量处的模式
我试图将两个变量传递给awk,以便在特定的行(-v var1)处用空格(“”)替换单词(-v var2)。当我运行它时,在我想要的线路上没有任何东西被替换 我的第一个方法是:Variables AWK替换特定线槽传递变量处的模式,variables,awk,line,Variables,Awk,Line,我试图将两个变量传递给awk,以便在特定的行(-v var1)处用空格(“”)替换单词(-v var2)。当我运行它时,在我想要的线路上没有任何东西被替换 我的第一个方法是: palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub("var2"," ")}{print }' Countries > tmp 文件“国家”中的内容为: usa usa colombia spain betina 删除v
palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub("var2"," ")}{print }' Countries > tmp
文件“国家”中的内容为:
usa
usa
colombia
spain
betina
删除
var2
周围的引号,您应该会很好
palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub(var2," ")}{print }' file
在描述中,您说
var1
是单词,var2
是行,但在命令中,您使用的是相反的方式。与其显式地编写{print}
的动作,不如使用1
的模式。例如'NR==var1{sub(“var2”,即“)}1'