Реальное количество строк bash - PullRequest
0 голосов
/ 30 мая 2018

Я анализирую временный файл, строки которого хотели бы удалить, поэтому я запускаю: tr '\n' ' ' < temp > temp2.Теперь, когда я wc -l temp2 возвращает 0 строк вместо 1, что было неожиданно для меня.

После проверки руководства wc -l считает только новые строки, а не строки.Его поведение в порядке, но может быть проблематичным, если вы не знаете, содержит ли последняя строка файла перевод строки.

Существует ли какой-либо инструмент или обходной путь, который считает строки, даже если у них нет перевода строки?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

awk на помощь!

awk 'END{print NR}' file

будет отлично работать без завершающего перевода строки.

0 голосов
/ 30 мая 2018

Текстовые файлы UNIX всегда должны заканчиваться новой строкой .Без этого многие инструменты не смогут обработать последнюю строку, именно так, как вы видите.Вместо того, чтобы искать инструмент, который может справиться с этим, я бы исправил ошибку в вашем файле.

{ tr '\n' ' ' < temp && echo; } > temp2
...