system
возвращает статус выхода (обычно 0, если он успешно завершен).Таким образом, строка:
n = system("wc -l " FILENAME)
будет просто приводить к выводу команды wc
, которая будет напечатана на экране, как обычно, а затем для n
будет задан код выхода 0.
Это объясняет:
12 accounts12
0
Первая строка - это вывод wc
, вторая - значение n
.
Вы можете попробовать вместо этого:
BEGIN {
"wc -l " ARGV[1] | getline n;
sub(ARGV[1], "|", n);
print n;
}
Это должно получить ваш n
.Преимущество в том, что он не будет занимать первую строку вашего файла.