В восьмеричном дампе нет управляющих символов (они были бы 033
).
Есть несколько 8-битных управляющих кодов (обычно не реализуемых большинством терминалов, кроме xterm). Восьмеричный 232
- это шестнадцатеричный 0x9a, и (ссылаясь на XTerm Control Sequences):
ESC Z
Return Terminal ID (DECID is 0x9a). Obsolete form of CSI c (DA).
...
CSI Ps c Send Device Attributes (Primary DA).
Ps = 0 or omitted -> request attributes from terminal. The
response depends on the decTerminalID resource setting.
...
-> CSI ? 6 c ("VT102")
Эти символы являются ответом терминала на управляющий символ DECID
. Детали ответа зависят от эмулятора терминала (который не был упомянут в вопросе).
Не знаю, понимаю ли я вашу просьбу.
Если я побегу
echo -e "last_first\nLastName, Firstname" | \
mlr --t2j --jlistwrap --jvstack nest --explode --values --across-fields --nested-fs "," -f last_first \
then clean-whitespace
У меня есть
[
{
"last_first_1": "LastName",
"last_first_2": "Firstname"
}
]
И если я побегу
echo -e "last_first\nLastName, Firstname" | \
mlr --tsv nest --explode --values --across-fields --nested-fs "," -f last_first \
then clean-whitespace
У меня есть
last_first_1 last_first_2
LastName Firstname
Вот как переключить LastName, FirstName
на FirstName LastName
с помощью выражений DSL:
echo -e "last_first\nLastName, Firstname\nAnotherLast, AnotherFirst" \
| mlr --t2j \
put -q 'o=splitnv($last_first,",");
first_last=strip(o[2]). " ". o[1];
emit first_last'
# result:
# { "first_last": "Firstname LastName" }
# { "first_last": "AnotherFirst AnotherLast" }
Я думаю, что тот факт, что emit
кажется необходимым (? )была ключевой частью, которую я раньше не понимал.
Это, к сожалению, не намного проще, чем использование глагола nest
и всех его необходимых флагов.