une option -N pour ne convertir qu'un certain nombre de caractères là où on a déjà d'autres outils pour faire ça (comme head)...
Pas compris... Je suppose que tu veux faire ceci avec head ?
$ cat nbr.txt
100301502703904105
$ od -N4 -c nbr.txt
0000000100\n0000004
$ head -c4 nbr.txt | od -c
0000000100\n0000004
Historiquement, head n'avait pas l'option -c d'une part, et il n'y avait pas d'éditeur de binaire Or il fait sens de vouloir examiner une portion déterminée sans devoir remplir tout l'affichage (rappelons-nous des petits écrans sans mémoire tampon pour garder plusieurs pages écran en mémoire tout ça)
Pour la petite histoire, od existe depuis la v1 d'UNIX AT&T, tandis que head est apparu plus tard dans PWB UNIX...
Et c'est tellement inutile que même xxd permet de le faire ;D
je ne comprends pas le choix de mettre plein d'options pour spécifier une sortie octale avec 1, 2 ou 4 caractères par ligne, des options pour des sorties hexa avec 2 ou 4 caractères par ligne
En fait il y a deux notions, qui sont souvent liées quand on fait de la programmation : le (type de) format et la longueur. Cela correspond à signaler le type de données ...non signé qui sont interprétés... sans quoi lui il ne sait pas trop à quoi correspond le binaire sous-jacent.
Si tu ne manipules que des octets, les choix seront plutôt entre : -tuC ou -tu1 pour la base 10, -tdC ou -td1 pour la même en nombre signé, -toC ou -to1 ou -b pour la base 8, -txC ou -tx1 pour la base 16.
l'équivalent de xxd -p -c 1 pour convertir l'entrée en hexa sur une seule colonne
Bon, le manuel dit que -p c'est le « postscript continuous hexdump style » ou « plain hexdump styple » hum. Et -c pour indiquet le nombre d'octets affichets par ligne, au lieu de 16 par défaut.
Pour supprimer le compteur (je suppose que c'est ce que fait le style continue à la postscript), il faut utiliser -An
Pour afficher des octets aussi en hexa aussi, j'utilise -tx1 Par défaut il travaille sur deux octets : -x ou -h ou -tx2 en hexa, -o ou -B ou -to2 en octal par défaut. Et quand on prend par paire l'ordre est un peu différent...
$ echotest| od -An -tx2
65747473 000a
$ echotest| od -An -tx1 | tr -d ' '
746573740a
Par contre on ne sait pas agir sur le groupement, sauf avec l'implémentation GNU qui prévoit une option -w entre autres. Je pense que ce n'est pas grave vu que tu AWK après dessus ; sinon un pipe supplémentaire comme dans l'exemple pour virer les blancs.
et xxd -p -r qui fait l'inverse
OD et HexDump ne font pas l'inverse... Mais comme tu fais déjà du traitement avec AWK, peut-être utiliser sa faction chr (et ord dans l'autre sens ?) Je sais, c'est pas du jeu :-)
"It is seldom that liberty of any kind is lost all at once." ― David Hume
[^] # Re: xxd
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse à la dépêche get-tracks.sh : extraire des pistes d'un fichier audio. Évalué à 9. Dernière modification le 24 janvier 2022 à 19:27.
Pas compris... Je suppose que tu veux faire ceci avec
head?Historiquement,
headn'avait pas l'option-cd'une part, et il n'y avait pas d'éditeur de binaire Or il fait sens de vouloir examiner une portion déterminée sans devoir remplir tout l'affichage (rappelons-nous des petits écrans sans mémoire tampon pour garder plusieurs pages écran en mémoire tout ça)Pour la petite histoire,
odexiste depuis la v1 d'UNIX AT&T, tandis queheadest apparu plus tard dans PWB UNIX...Et c'est tellement inutile que même xxd permet de le faire ;D
En fait il y a deux notions, qui sont souvent liées quand on fait de la programmation : le (type de) format et la longueur. Cela correspond à signaler le type de données ...non signé qui sont interprétés... sans quoi lui il ne sait pas trop à quoi correspond le binaire sous-jacent.
Si tu ne manipules que des octets, les choix seront plutôt entre :
-tuCou-tu1pour la base 10,-tdCou-td1pour la même en nombre signé,-toCou-to1ou-bpour la base 8,-txCou-tx1pour la base 16.Bon, le manuel dit que
-pc'est le « postscript continuous hexdump style » ou « plain hexdump styple » hum. Et-cpour indiquet le nombre d'octets affichets par ligne, au lieu de 16 par défaut.Pour supprimer le compteur (je suppose que c'est ce que fait le style continue à la postscript), il faut utiliser
-AnPour afficher des octets aussi en hexa aussi, j'utilise
-tx1Par défaut il travaille sur deux octets :-xou-hou-tx2en hexa,-oou-Bou-to2en octal par défaut. Et quand on prend par paire l'ordre est un peu différent...Par contre on ne sait pas agir sur le groupement, sauf avec l'implémentation GNU qui prévoit une option
-wentre autres. Je pense que ce n'est pas grave vu que tu AWK après dessus ; sinon un pipe supplémentaire comme dans l'exemple pour virer les blancs.OD et HexDump ne font pas l'inverse... Mais comme tu fais déjà du traitement avec AWK, peut-être utiliser sa faction
chr(etorddans l'autre sens ?) Je sais, c'est pas du jeu :-)"It is seldom that liberty of any kind is lost all at once." ― David Hume