wc -l
количество записей на основе разделителя строк (\n
), скорее всего, ваша последняя запись не имеет разделителя строк.
Например, echo
команды добавляют новую строку в конце, но printf
не будет.
Демо:
$echo -e "1\n2" | wc -l
2
$printf "1\n2" | wc -l
1
$
$echo -e "1\n2" | od -c
0000000 1 \n 2 \n
0000004
$printf "1\n2" | od -c
0000000 1 \n 2
0000003
$
Printf и echo выводятся на печать 2 записи. Но поскольку у нас нет разделителя строк (\n
) в конце строки, wc
показывает только 1 запись
$echo -e "1\n2"
1
2
$printf "1\n2"
1
2$