PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell-Script: Bestimmte Zeichen nicht möglich?


Gast
2008-09-08, 01:24:23
Wenn ich in einer Linux Shell eine Datei einlesen will, so werden Zeichen scheinbar entfernt (Hex: 00 z.B.). Auf jeden Fall ist die Dateilänge anders. Im Beispiel unten werden aus 26 Byte 20 Byte.
t=`cat bla.gz` ; echo ${#t} ; ls -al bla.gz
20
-rw-r--r-- 1 xx xx 26 2008-09-08 00:57 bla.gz
Ich weiß, dass man Dateien anders lesen kann aber darum gehts nicht (eigtl. möchte ich ein gzip ausführen, den Inhalt in eine Variable speichern und dann an ein anderes Programm übergeben). Gibts ne Lösung, diese Ersetzungen zu umgehen? Hab was vom IFS gelesen aber irgendwie kann ich den scheinbar nicht setzen (zumindest hat es keine Auswirkung).

Gast
2008-09-08, 07:52:20
0x00 ist nun mal das ende von strings in C
Binärdaten sind nun mal problematisch.

Find ich irgendwie auch komisch das ein Programm eine Binärdatei als normales Argument erwartet.
Normalerweise sollte sowas doch über stdin/stdout laufen und dann kannste einfach ne pipe verwenden:

echo test | gzip -c | programm