Я хотел бы понять разницу в результате для следующих команд awk.
Я прочитал, что когда awk вводит числовые переменные, они по умолчанию устанавливаются в ноль, поэтому предположим, что sum = 0 будетпредполагается неявно.
Однако 1) дает неверный результат, а 2) является правильным.
Цель: Найти общее количество строк в файле безиспользуя NR
financial.txt
14D 20190503 0.31 0.31 0.295 0.295 117949
14DO 20190503 0.00 0.00 0.00 0.07 0
1AD 20190503 0.18 0.19 0.18 0.19 54370
1AG 20190503 0.041 0.042 0.041 0.042 284890
1AL 20190503 0.00 0.00 0.00 0.88 0
1ST 20190503 0.05 0.05 0.049 0.049 223215
3DP 20190503 0.049 0.054 0.048 0.048 2056379
3PL 20190503 1.055 1.06 1.02 1.05 120685
4CE 20190503 0.00 0.00 0.00 0.009 0
4DS 20190503 0.072 0.076 0.072 0.075 2375896
$ awk 'BEGIN {sum+=1} END {print sum}' financial.txt
1
$ awk 'BEGIN {sum=0}{sum+=1} END {print sum}' financial.txt
5527
Спасибо
Изучив комментарии, я нашел решение, которое искал, не используя BEGIN.
$ awk '{sum+=1}END{print sum}' financial.txt
5527