使用printf并递增地增加一个字符串变量?
问题描述:
我想输出一个字符串,但我需要在字符串前增加一个数字,直到它结束。我正在从txt文件中提取数据。使用printf并递增地增加一个字符串变量?
/Circle/{n=split($2,array,",")
if (index(array[2],"x")){x=array[3]}
else if (index(array[2],"y")){y=array[3]}
else if (index(array[2],"z")){z=array[3]}
else if (index(array[2],"r")){z=array[3]}
else { printf("CIRCLE/%.4f,%.4f,%.4f,%.4f\n", x, y, r, z) }}
这是我现在和它的输出是这样
CIRCLE/0.0000,0.0000,0.0000,1.0068
CIRCLE/10.0000,0.0000,0.0000,1.9068
CIRCLE /5.0000,0.0000,0.0000,1.8068
我需要它看起来像这样
CR1 = CIRCLE/0.0000,0.0000,0.0000,1.0068
CR2 = CIRCLE/10.0000,0.0000,0.0000,1.9068
CR3 = CIRCLE/5.0000,0.0000,0.0000,1.8068
答
您的printf改为:
printf("%sCIRCLE/%.4f,%.4f,%.4f,%.4f\n", "CR" ++i "=", x, y, r, z)
(此外,这是稍微更地道,不使用与打印语句括号):
printf "%sCIRCLE/%.4f,%.4f,%.4f,%.4f\n", "CR" ++i "=", x, y, r, z
答
你没有张贴任何样品输入,所以这显然是未经测试,但你的代码也许应该是这样的:
/Circle/ {
split($2,array,/,/)
if (array[2] ~ /[xyzr]/) {
v[array[2]] = array[3]
}
else {
printf "CR%d=CIRCLE/%.4f,%.4f,%.4f,%.4f\n", ++cnt, v["x"], v["y"], v["r"], v["z"]
}
}
太谢谢你了!完美的作品。 – Fire02
'printf'CR%d = CIRCLE /%。4f,%。4f,%。4f,%。4f \ n“,++ i,x,y,r,z'会更加明显。 –