Thread Umgang mit Zero-byte separierten Listen...
(4 answers)
Opened by hollandhasser at 2010-10-25 14:50
Hi all,
ich bräuchte hier als Perl-Neuling etwas Nachhilfe beim Basteln eines kleinen Perlskripts. Worum gehts? Ich habe ein mit Zero-bytes separiertes File: Code: (dl
)
"Hello World\0How are you today?\0Perl is cool!\0" Was ich brauche, ist jedes Element einlesen, ausgeben, dann dessen MD5 Fingerprint ausgeben, ebenfalls Zero-byte separiert. In Pseudo-AWK ginge das so: Code: (dl
)
awk -F '\0' '{printf("%s\0%s\0",$1,md5sum($1))}' file > output Mal abgesehen davon gibts keine md5sum Funktion in awk. In Perl gibts MDigest::MD5. Ich kann das schon Zeilenweise (newline-separiert lesen/schreiben) bewältigen in Perl: Code: (dl
)
1 tr '\0' '\n' < file | Jetzt die Frage: Wie lese/iteriere ich das File Zero-Byte separiert, jedes Element wird einmal normal (1:1) ausgegeben, dann der Digest davon, beides getrennt von einem Zero-Byte? Hier mein Pseudo-Code: (der aber nicht so tut, wie ich mir das vorstelle...) Code: (dl
)
perl -MDigest::MD5=md5_hex -F'\0' -le 'printf("%s\0%s\0",$_,md5_hex $_)' < file > output Wunschergebnis: output := Code: (dl
)
"Hello World\0b10a8db164e0754105b7a99be72e3fe5\0How are you today?\0eb7edd81af9146ea0ef9c9397ece0bc4Perl is cool!\082a8f26caedfc4c7586abd24c577908f\0" Danke für alle Antworten und Anregungen im Voraus. Gruss, Benny. Last edited: 2010-10-25 15:01:09 +0200 (CEST) |