Das Einheitentrennzeichen ASCII (ASCII 31, Oktal 37) ist in Vim als sichtbar ^_
. Wenn ich aber dieselbe Datei auf das Terminal drucke, ist das Zeichen unsichtbar. Dies führt dazu, dass die Felder in einer Zeile zusammenkleben:
# 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
Ich nehme an, ich kann das Einheitentrennzeichen mit cat -v sichtbar machen:
cat -v delim.txt
first field^_second field^_last field
Das ist aber ziemlich umständlich. Warum hat das Einheitentrennzeichen keine sichtbare Darstellung, wenn es in der Bash-Shell auf stdout gedruckt wird? Ich kann die Shell-Ausgabe nicht einmal richtig kopieren und einfügen. Der Einheitentrenner geht dabei verloren.