On Tue, Nov 06, 2001 at 10:10:00PM +0100, Torsten Werner wrote:
Hier werden aber zwei externe Binaries benoetigt: od und sed. Wenn man die voraussetzen kann, dann gibt es sicher eine Loesung.
Ja. sed kann man weglassen, od brauche ich noch:
while read -n 1 byte; do var=$(echo -n $byte|od -An -tu1) var=${var## } #printf '%0.3u = Ox%0.2x\n' $var $var printf '%c' $var done
soll einfach ein File byteweise kopieren. Das Einlesen klappt. Das rausschreiben mit printf geht schief.
var=`cat /bin/ls` echo ${#var} ls -l /bin/ls
liefert unterschiedliche Groessen.
ich denke, daß beim cat sowas wie tab und backspace interpretiert wird und somit die Länge von $var anders ist.
Interessant ist auch die Ausgabe von
var=$'\x01\x02\x03\x04\x05\x06... echo -e ${var} | od -tx1 -Ax2
Das Zeichen \x00 geht gar nicht.
Wirklich seltsam: 000000 01 02 03 04 05 06 07 08 20 0b 0c 0d 0e 0f 10 11 bis 08 ist alles ok, dann geht der Ärger los. 08=backspace 09=tab Ich denke mal in $var steht das richtige drin aber das echo versaut irgendwas. Wenn du "od -tx1 -Ax2 < file " machst und in dem file diese 255 Bytes drin sind klappt es. Mit echo und cat müssen wir also sehr vorsichtig sein.
Reinhard