-
QSH und Zeichensatz
Hallo,
ich habe (mal wieder) ein Problem mit Code-Pages/EBCDIC.
Mein Arbeitsverzeichnis liegt in einem IFS-Verzeichnis ( Root:/WORKDIR ). Ich rufe auf der AS400 eine Shell-Sitzung auf (QSH) und erstelle in einem Shell-Script eine neue Datei. Die eigentliche Ausgabe erfolgt mit AWK.
Das Script selber editiere ich mit meinem Windows-Editor in diesem Verzeichnis.
Soweit so gut. Das Shell-Script kann ich mit meinem PC und auf der AS400 anzeigen und im Klartext sehen. Wenn ich die Datei mit WRKLNK anzeige, sehe ich die CCSID 1252.
Das Script erzeugt eine neue Datei, diese kann ich auf der AS400 mittels cat anzeigen, sehe auf meinem Windows-PC aber nur Binärdaten. Die CCSID dieser Datei ist 273. Also, clever wie ich bin, habe ich die Datei dann mittels CHGATR auf 1252 geändert.
Das Ergebnis: In der QSH-Session UND auf dem PC sehe ich Binärdaten ?!?!
Man kann das Problem umgehen, indem eine leere Datei mit dem PC angelegt wird, und die neue Datei immer als Kopie dieser leeren Datei angelegt wird, anstatt neu durch das Script:
#cp EMPTY_BASE.txt NEWFILE.txt
#cat SOMEFILE | awk '/.../ { ... }' >> NEWFILE.txt
Aber warum ist das so??
Viele Grüße
Michael
-
Mit DSPF kann man Dateien im IFS anzeigen und mit EDTF ändern.
CHGATR *CCSID ändert nur die CCSID einer Datei, setzt jedoch nicht ihren Inhalt dazu passend um.
Wenn die QSHELL eine neue Datei anlegt, nimmt sie die Standard-CCSID des Jobs bzw. (falls vorhanden) den Wert aus der Umgebungsvariable QIBM_CCSID.
QIBM_CCSID (CCSID for translation)
When this variable is set to a numeric value, qsh and various utilities use the value for creating files and translating data from the CCSID of the job. The default value is "0" for the default job CCSID. A value of "65535" means no translation is done. (Quelle)
Siehe auch: CCSID of QSHELL generated IFS file
-
Hallo Michael,
erstelle dir die Datei vorher mittels 'touch -C <ccsid> <filename>' und befülle sie erst danach.
MFG Zerberus
MFG Zerberus
-
Danke sehr, Pikachu. Das ist die Lösung.
Und wenn man QIBM_CCSID dann auch exportiert, klappt es auch mit AWK .
Vielen Dank auch für den Link!
-
Vielen Dank Zerberus, das funktioniert wesentlich besser, als per Windows-PC eine Datei anzulegen.
Ich hatte touch im Script benutzt, um Dateien bestimmten Alters zu finden, aber der Parameter -C ist mir dabei nicht aufgefallen. Muss meine Brille mal häufiger putzen.
Similar Threads
-
By Rainer Ross in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 16-08-14, 17:12
-
By Andreas Herzfeldt in forum NEWSboard Drucker
Antworten: 3
Letzter Beitrag: 27-06-01, 16:22
-
By Burgy Zapp in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 03-04-01, 19:07
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks