Comment puis-je imprimer les valeurs numériques ASCII de chaque caractère dans un fichier texte. Comme cat
, mais montrant les valeurs ASCII = .. . (hex ou décimal va bien).
Exemple de sortie pour un fichier contenant le mot Apple (avec un flux de lignes) pourrait ressembler à:
065 112 112 108 101 013 004
La commande standard pour cela est od
, pour un déchargement octal (bien que des options, vous pouvez passer d'octal à décimal ou hexadécimal ...):
$ echo Apple | od -An -vtu1
65 112 112 108 101 10
Notez qu'il diffuse la valeur d'octets de chaque octet dans le fichier. Cela n'a rien à voir avec ASCII ou tout autre jeu de caractères.
Si le fichier contient A A dans un jeu de caractères donné et que vous souhaitez voir 65, car c'est l'octet utilisé pour A en ASCII, vous auriez alors besoin de faire:
< file iconv -f that-charset -t ascii | od -An -vtu1
Pour d'abord convertir ce fichier en ASCII, puis vider les valeurs d'octets correspondants. Par exemple Apple<LF>
dans EbcDic-Royaume-Uni serait 193 151 151 147 133 37
(301 227 227 223 205 045
en octale).
$ printf '\301\227\227\223\205\045' | iconv -f ebcdic-uk -t ascii | od -An -vtu1
65 112 112 108 101 10