Usando o módulo 3 ( %
) e uma pequena correção em printf(\"%%f %%s\n\",=="",)
{
if (NR%3==1) {printf("\n( == \"cs.cpool\") && (h==1) {printf(\"%%f %%s\n\",=="",); a=1;}")};
if (NR%3==2) {printf("\n( == \"cs.leafc\") && (h==1) {printf(\"%%f %%s\n\",=="",); a=1;}")};
if (NR%3==0) {printf("\n( == \"cs.dead_leafc\") && (h==1) {printf(\"%%f %%s\n\",=="",); a=1; h=0;}")}
}
O módulo também é uma boa ideia, se você tiver mais de três linhas no seu input.txt
. O número 3
no código acima depende das printf
linhas em test.awk
. Com quatro printf
linhas, você precisa de algo assim:
{
if (NR%4==1) {printf("\n( == \"cs.cpool\") && (h==1) {printf(\"%%f %%s\n\",=="",); a=1;}")};
if (NR%4==2) {printf("\n( == \"cs.leafc\") && (h==1) {printf(\"%%f %%s\n\",=="",); a=1;}")};
if (NR%4==3) {printf("\n( == \"cs.dead_leafc\") && (h==1) {printf(\"%%f %%s\n\",=="",); a=1; h=0;}")};
if (NR%4==0) {printf("\n( == \"foo.bar\") && (h==1) {printf(\"%%f %%s\n\",=="",); a=1; h=0;}")}
}
Saída com três linhas em input.txt
:
% awk -f test.awk input.txt
( == "cs.cpool") && (h==1) {printf("%f %s\n",==-0.00432739,); a=1;}
( == "cs.leafc") && (h==1) {printf("%f %s\n",==0.41369093,); a=1;}
( == "cs.dead_leafc") && (h==1) {printf("%f %s\n",==0.00000000,); a=1; h=0;}
Saída com mais de três linhas em input.txt
% awk -f test.awk input.txt
( == "cs.cpool") && (h==1) {printf("%f %s\n",==-0.00432739,); a=1;}
( == "cs.leafc") && (h==1) {printf("%f %s\n",==0.41369093,); a=1;}
( == "cs.dead_leafc") && (h==1) {printf("%f %s\n",==0.00000000,); a=1; h=0;}
( == "cs.cpool") && (h==1) {printf("%f %s\n",==-0.00432739,); a=1;}
( == "cs.leafc") && (h==1) {printf("%f %s\n",==0.41369093,); a=1;}
( == "cs.dead_leafc") && (h==1) {printf("%f %s\n",==0.00000000,); a=1; h=0;}