awk -v input="$constrained" '
BEGIN {
n = split(toupper(input), user)
fmt = "%-4s %-8s NNN 0.050 0.050 0.050\n"
}
{print}
/<< matched line >>/ {
for (i=1; i<=n; i++)
printf fmt, user[i], user[i]"_GPS"
exit
}
' ./text_data > text_data_2
在上面的代码中,我想为0.050 0.050 0.050
. 我尝试使用 with
echo -n "##### numeric value? ####?"
read value
fmt = "%-4s %-8s NNN $value $value $value\n"
但在引号内,$value
不能定义变量。如何在引号内定义此变量?
您应该能够使用与变量
-v
相同的方式传递input
变量然后
sprintf
在你的BEGIN
块中使用来构造格式字符串,例如请注意使用来在字符串
%%
中生成文字。%
fmt
为了测试它是否构造了正确的格式字符串,我们可以添加打印语句,首先是
fmt
字符串本身,然后是生成的打印语句: