Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.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
Awk 使用printf并递增字符串变量?_Awk - Fatal编程技术网

Awk 使用printf并递增字符串变量?

Awk 使用printf并递增字符串变量?,awk,Awk,我试图输出一个字符串,但我需要在字符串前面增加一个数字,直到它结束。我正在从txt文件中提取数据 /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 {

我试图输出一个字符串,但我需要在字符串前面增加一个数字,直到它结束。我正在从txt文件中提取数据

/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) }}
这就是我现在拥有的,它的输出是这样的

圆圈/0.0000,0.0000,0.0000,1.0068

圆圈/10.0000,0.0000,0.0000,1.9068

圆圈/5.0000,0.0000,0.0000,1.8068

我需要它看起来像这样

CR1=圆/0.0000,0.0000,0.0000,1.0068

CR2=圆/10.0000,0.0000,0.0000,1.9068

CR3=圆圈/5.0000,0.0000,0.0000,1.8068

将您的printf更改为:

printf("%sCIRCLE/%.4f,%.4f,%.4f,%.4f\n", "CR" ++i "=", x, y, r, z)
(另外,在print语句中不使用括号更为惯用):

将printf更改为:

printf("%sCIRCLE/%.4f,%.4f,%.4f,%.4f\n", "CR" ++i "=", x, y, r, z)
(另外,在print语句中不使用括号更为惯用):


您没有发布任何示例输入,因此这显然未经测试,但您的代码可能如下所示:

/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"]
    }
}

您没有发布任何示例输入,因此这显然未经测试,但您的代码可能如下所示:

/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"]
    }
}

非常感谢你!工作非常完美。
printf“CR%d=CIRCLE/%.4f、%.4f、%.4f、%.4f、%.4f\n”、++i、x、y、r、z
会更加明显。非常感谢!工作非常完美。
printf“CR%d=CIRCLE/%.4f、%.4f、%.4f、%.4f、%.4f\n”、++i、x、y、r、z
会更明显。