Как отобразить конечные пробелы в текстовом файле?

Как отобразить конечные пробелы в текстовом файле?

Я хотел бы иметь возможность распечатать текстовый файл и увидеть конечные пробелы (просто отобразить, а не удалить).

Я пробовал с помощью cat -vwhich suggest отображать непечатаемые символы, но он не отображает их так, как ожидалось (нет визуальной разницы между строками). Например

$ printf "foo\nbar \t\n" > file.txt
$ cat -v file.txt 
foo
bar     

Под пробелами при печати/отображении я подразумеваю визуальное указание человеком на то, что конечный пробел присутствует по сравнению с другими строками без него, либо с помощью какого-либо специального символа, цвета (например, когда файлы отображаются с помощью git diff) или чего-то подобного.

Есть ли другой путь?


Примечание: Я использую macOS Sierra, однако у меня есть доступ к catкомандам GNU и BSD:

$ type -a cat
cat is /usr/local/opt/coreutils/libexec/gnubin/cat
cat is /bin/cat
$ cat --version
cat (GNU coreutils) 8.28
$ /bin/cat --version
/bin/cat: illegal option -- -
usage: cat [-benstuv] [file ...]

решение1

gnu catимеет -Eпереключатель для этого, поэтому с таким входом

printf " one \ntwo \t\n"

он будет печатать

 one $
two    $

Существует множество способов эмулировать такое поведение, например, использовать sed«сырой» режим:

sed -n l infile

или

paste -d '$' infile /dev/null

или используйте любой текстовый редактор, чтобы добавить $перед каждой новой строкой...

Вы также можете попробовать что-то вроде

less -p '[[:blank:]]+$' infile

который выделит шаблон (в данном случае конечные пробелы)...

Связанный контент