• [^] # Re: xxd

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche get-tracks.sh : extraire des pistes d'un fichier audio. Évalué à 5.

    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 :-)

    Petites notes sympas, vu que ce ne sont pas des fonctions natives (en tout cas pas requis par POSIX donc propre à l'implémentation si présente) : https://www.gnu.org/software/gawk/manual/html_node/Ordinal-Functions.html et https://helpmanual.io/man3/ordchr-am/

    C'est la première fois que j'entends parler du besoin de faire l'opération inverse dans un script ; du coup je suis allé regarder le source. Je ne suis pas sûr d'avoir compris ce que tu tentes de faire : pour du rechercher-remplacer il n'est pas besoin de passer par ce détour ...à moins que ce ne soit des caractères trop particuliers ? (auquel cas méfiance...) S'il s'agit par contre de changer l'encodage, il n'y a pas de mal à faire appel à iconv dont c'est le boulot (et qui donc prend en compte un certain nombre d'autres paramètres.)
    En fait, quand il y a plusieurs solutions possibles j'aime plutôt permettre au script de s'adapter en conséquence (il y a de grande chance que l'un des deux outils soit installé, et si c'est pas le cas on fait avec) :

    if command -v iconv >/dev/null ; then
     # traitement avec iconv...
    elif command -v xxd >/dev/null ; then
     # traitement avec xxd...
    else
     # p-o-c qu'on peut faire sans l'un ni l'autre
     # ou arret avec message d'erreur clair
     # ou traitement degrade avec avertissement
    fi

    "It is seldom that liberty of any kind is lost all at once." ― David Hume