У меня есть много форм, которые нужно сгенерировать.
$>cat debug-form-letter
The first field is $1, the second $2, the third $3,
the 10th field is $10,but the 10th correct value is varA.
$> cat debug-replace-value
var1|var2|var3|var4|var5|var6|var7|var8|var9|varA|varB
$> cat debug-replace-form-letter.awk
BEGIN {FS = "|"
while (getline <"debug-form-letter")
line[++n] = $0
}
{for (i = 1; i <= n; i++) {
s = line[i]
for (j = 1; j <= NF; j++)
gsub("\\$"j, $j, s)
print s
}
}
- я позвонил
$> awk -f debug-replace-form-letter.awk debug-replace-value
- 10 Я хочу получить вот так
The first field is var1, the second var2, the third var3,
the 10th field is varA,but the 10th correct value is varA.
- 20, но я получаю это
The first field is var1, the second var2, the third var3,
the 10th field is var10,but the 10th correct value is varA.
вышеуказанные $ 10 не верны, они становятся $ 1 плюс 0, я пытаюсь сделать двойную кавычку и одинарную кавычку, это тоже не работает.
И $ 11 становится $ 1 плюс 1.
мой awk 4.1.3, и я обновляюсь до последней версии, он тоже не работает.
$> awk -V
GNU Awk 4.1.3, API: 1.1
Copyright (C) 1989, 1991-2015 Free Software Foundation.
что не так с моим скриптом? как я могу заставить его работать?