chtag funktioniert nicht unter z / OS UNIX

480
Stavr00

Ich versuche, ASCII-Dateien auf der z / OS-Host-Shell zu kennzeichnen, sodass wir die Codepage nicht in der Befehlszeile angeben müssen.

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

Geben Sie "Hallo" ein, beenden Sie und speichern Sie

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

Eine Untersuchung der iso.txtDatei zeigt, dass sie EBCDIC enthält.

Wie stelle ich die Tools so ein, dass sie das Codepage-Tag-Attribut verwenden? Beachten Sie, dass die explizite Angabe der Codeseite -W filecodeset=819funktioniert.

2

1 Antwort auf die Frage

4
Hogstrom

Es gibt Unterstützungsmechanismen für die automatische Konvertierung basierend auf Tagging. Um das zu tun, woran Sie interessiert sind, habe ich Ihr Szenario auf meinem z / OS 2.3-System repliziert. Um zu erreichen, was Sie möchten, können Sie festlegen _BPXK_AUTOCVT=ON. Ich wiederholte den bereitgestellten Testfall und stellte dann fest _BPXK_AUTOCVT=ON, dass das gewünschte Verhalten funktioniert.

$ 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 

Das Wort Hallo wird als EBCDIC gespeichert, obwohl die Datei mit 819 gekennzeichnet wurde.
Als Nächstes wird mit der Einstellung _BPXK_AUTOCVT=ONdie automatische Konvertierung aktiviert .

$ 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 

Hier sehen Sie, dass die Auto-Konvertierungsfunktion den Text im richtigen Codesatz gespeichert hat.

Verweise: