Показывать пробельные символы в распечатке
Мне нужно визуализировать файл ASCII для печати таким образом, чтобы устранить двусмысленность, если (очень маловероятно) кто-то решит набрать его и проверить подписи.
В качестве альтернативы я даю 8-битный QR-код с набором символов, но ручная проверка будет хорошим дополнением для архивных целей.
По сути, мне нужен моноширинный наборщик, который бы набирал символ "пробел" для пробела, символ CR/LF (и переходил к следующей строке для удобства чтения) всякий раз, когда встречался CR/LF и т. Д., Делая это очевидным, если есть любые пробельные символы перед CR/LF, если присутствует символ и т. д.
Есть ли шрифт, который достигает этой цели? * Утилита nix? Модуль / пакет / производная система TeX? Я разместил аналогичный вопрос на TeX.SE, но он мог бы лучше подойти здесь.
1 ответ
В качестве дополнения к ответу Саванто, я создал whitespace
псевдоним bash для отображения пробелов в любом выводе с использованием соответствующих символов Unicode. Просто трубка к нему и получайте удовольствие!
# SP ' ' 0x20 = · U+00B7 Middle Dot
# TAB '\t' 0x09 = → U+FFEB Halfwidth Rightwards Arrow
# CR '\r' 0x0D = § U+00A7 Section Sign (⏎ U+23CE also works fine)
# LF '\n' 0x0A = ¶ U+00B6 Pilcrow Sign (was "Paragraph Sign")
alias whitespace="sed 's/ /·/g;s/\t/→/g;s/\r/§/g;s/$/¶/g'"
Повеселись!
$ bash --help | whitespace
GNU·bash,·version·4.4.20(1)-release-(x86_64-pc-linux-gnu)¶
Usage:→bash·[GNU·long·option]·[option]·...¶
→bash·[GNU·long·option]·[option]·script-file·...¶
GNU·long·options:¶
→--debug¶
→--debugger¶
→--dump-po-strings¶
→--dump-strings¶
→--help¶
→--init-file¶
→--login¶
→--noediting¶
→--noprofile¶
→--norc¶
→--posix¶
→--rcfile¶
→--restricted¶
→--verbose¶
→--version¶
Shell·options:¶
→-ilrsD·or·-c·command·or·-O·shopt_option→→(invocation·only)¶
→-abefhkmnptuvxBCHP·or·-o·option¶
Type·`bash·-c·"help·set"'·for·more·information·about·shell·options.¶
Type·`bash·-c·help'·for·more·information·about·shell·builtin·commands.¶
Use·the·`bashbug'·command·to·report·bugs.¶
¶
bash·home·page:·<http://www.gnu.org/software/bash>¶
General·help·using·GNU·software:·<http://www.gnu.org/gethelp/>¶
В системе Unix / Linux вы можете передать файл через tr
, преобразовывая определенные символы в другие. Например:
cat file.txt | tr ' \n' '#$'
переведет все пробелы в #
и все новые строки $
,
Если вам нужно преобразовать CR / LF вместе, вы можете использовать tr ' ' '#'
поменять пробелы и трубу выводить в другую tr -t '\r\n' '$'
изменить переводы строки. -t
говорит tr
усечь соответствующий набор до длины набора замены.
Вы также можете использовать утилиту dos2unix
сначала перевести все \r\n
конец строки в более unix \n
, затем используйте первый вариант.
Пример (с \n
только):
$ echo "foo bar" | tr ' \n' '#$'
foo#bar$