Представление байтов в QShell AS/400 (iSeries)

У меня проблемы с использованием инструментов unix, которые я обычно использую, потому что я не могу использовать некоторые символы в QSHell. Например, в Linux я могу заменить определенные байты в файле следующим образом:

sed 's / l / \x81/' a.txt

В этом случае я заменяю l байтом x81. Однако в Qshell я не могу использовать \x, например,

printf '\x81'
Öx81   

Как мы видим, \x81 не печатается как "a", то есть \x81 в EBCDIC, кодировке из iSeries. Он даже не пытается напечатать байт, он печатает строку длиной 4...

Я пытаюсь просто использовать sed для замены возврата каретки, возврата каретки, новой строки и тому подобного. Я понял, что символа \ нет в EBCDIC, как и {}. Итак, есть также некоторые команды unix, которые используют те символы, которые показывают ошибку в QShell. Пожалуйста, помогите, я не могу найти способ заставить все работать в Интернете, поэтому я не могу написать ни одного скрипта.

Чтобы вопрос не был двусмысленным, мне особенно нужен способ распечатать символ, используя его шестнадцатеричное представление в Qshell.

Я использую PCOMM tn5250 для подключения к AS/400.

1 ответ

Вам нужно сбежать от побега следующим образом:

printf \\x81

a

Другие вопросы по тегам