Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables AWK替换特定线槽传递变量处的模式_Variables_Awk_Line - Fatal编程技术网

Variables AWK替换特定线槽传递变量处的模式

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

我试图将两个变量传递给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

删除
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'