Комментарий @ steeldriver верен: cat
показывает окончания строк с помощью $
(как vi
мог бы, если бы вы вежливо спросили, используя ": set list" ). Дополнительный символ в строке - это новая строка (невидимый символ в конце каждой строки текста).
Если вам нужен только счет печатаемого текста, вы можете отфильтровать файл перед его обработкой с помощью wc
, например, используя tr
с -d
вариант. Вот сценарий, который считается примером:
#!/bin/sh
cat $0 |wc
cat $0 | tr -d '\r\n\t' | wc
cat $0 | tr -d '[:cntrl:]' |wc
хотя последняя строка, возможно, недостаточно переносима для вашего использования (она находится в POSIX , в разделе extended ). Но он будет работать на всем, что вы, вероятно, будете использовать, исходя из подсказок в обосновании.