Символ разделителя единиц ASCII (ASCII 31, восьмеричное 37) отображается в Vim как a ^_
. Но если я печатаю тот же файл в терминал, символ становится невидимым. Это приводит к слипанию полей в строке:
# In Vim and less:
first field^_second field^_last field
# cat the same file to terminal:
cat delim.txt
first fieldsecond fieldlast field
# print 2nd field with awk
cat delim.txt | awk 'BEGIN {FS = "\037"} {print $2}'
second field
Я полагаю, я могу сделать разделитель модулей видимым с помощью cat -v:
cat -v delim.txt
first field^_second field^_last field
Но это довольно громоздко. Почему разделитель модулей не имеет видимого представления при выводе на стандартный вывод в оболочке Bash? Я даже не могу правильно скопировать и вставить вывод оболочки; разделитель блоков теряется в процессе.