Я хотел бы иметь возможность распечатать текстовый файл и увидеть конечные пробелы (просто отобразить, а не удалить).
Я пробовал с помощью cat -v
which 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
который выделит шаблон (в данном случае конечные пробелы)...