Plutôt une question de débutant mais je suis resté bloqué pendant un certain temps: J'ai un problème pour lire et analyser une chaîne stockée sur le disque dur à l'adresse que je connais ...Lecture d'une chaîne terminée par un caractère nul à partir de la variable od dans MINIX cendre
Je ne connais pas la longueur de la chaîne, seulement sa longueur maximale est n
. Il a été écrit dans n
-buffer initié avec des zéros, donc son hexdump est comme xx xx xx xx 00 00 00 00 00
où xx
sont hexadécimaux pour les caractères string appropriés.
Alors que je connais l'adresse de la chaîne, je le copier dans le fichier binaire tmp
en utilisant l'aide dd if=<hd> of=tmp
(avec bs/nombre approprié/saut pour obtenir les n
octets de la mémoire tampon). Puis, en bash (ou plutôt dans les cendres MINIX pour être précis) je tente d'utiliser od
pour analyser et lire dans la variable mais je ne peux pas me débarrasser des espaces/nulls:
name=$(od -Anx -tc tmp)
echo $name
et je reçois J O H N \0 \0 \0 \0 \0
au lieu de simplement JOHN
Vous pouvez essayer le passer par 'strings' si elle est une chaîne semblable. –
'name = $ (od -Anx -tc <(sed 's/\ x00 // g' tmp))' – 123
Pouvez-vous coller ici la sortie de 'cat -e tmp'? –