chtag не работает в z / OS UNIX

424
Stavr00

Я пытаюсь пометить файлы ASCII в оболочке хоста z / OS, поэтому нам не нужно указывать кодовую страницу в командной строке.

> echo > iso.txt > chtag -t -c 819 iso.txt > vi iso.txt 

Введите "Hello", затем выйдите и сохраните

> ls -T iso.txt t ISO8859-1 T=on iso.txt > od -x iso.txt 0000000000 C885 9393 9615 

исследуя iso.txt файла показывает, что он содержит EBCDIC.

Как настроить инструменты для использования атрибута тега кодовой страницы? Обратите внимание, что явное указание кодовой страницы с помощью -W filecodeset=819работает.

2

1 ответ на вопрос

4
Hogstrom

Существуют механизмы поддержки для автоматического преобразования на основе тегов. Чтобы сделать то, что вам интересно, я скопировал ваш сценарий в моей системе z / OS 2.3. Чтобы выполнить то, что вы хотите, вы можете установить _BPXK_AUTOCVT=ON. Я повторил предоставленный тестовый пример и затем установил, _BPXK_AUTOCVT=ONчтобы продемонстрировать желаемое поведение.

$ echo > iso.txt $ chtag -t -c 819 iso.txt $ ls -T iso.txt t ISO8859-1 T=on iso.txt $ vi iso.txt (enter Hello, save then exit) $ od -x iso.txt 0000000000 C885 9393 9615 0000000006 

Слово Hello сохраняется как EBCDIC, несмотря на то, что файл помечен как 819.
Далее, настройка _BPXK_AUTOCVT=ONвключает автоматическое преобразование.

$ export _BPXK_AUTOCVT=ON $ echo > iso.txt $ chtag -t -c 819 iso.txt $ vi iso.txt (enter Hello, save then exit) $ od -X iso.txt 0000000000 48656C6C 6F0A0000 0000000006 

Здесь вы можете видеть, что функция автоконвертации сохраняла текст в правильном наборе кодов.

Рекомендации: