return 0, когда в файле есть пустые строки? Если есть пустая строка, она начинается с новой строки вправо?
Пожалуйста, исправьте меня, если я ошибаюсь.
Ответ 1
Регулярное выражение для соответствия концу строки $, а не \n (так как grep работает строка за раз, он игнорирует строки перевода строк между строками).
grep -c '^$' myfile.txt
Ответ 2
grep и подсчитайте пустые строки следующим образом:
grep -c "^$" myfile.txt
Поскольку \n считается концом строки, вам нужно использовать начало строки и конец строки "^$"