• [^] # Re: 1 les classer, 2 les commenter

    Posté par (site web personnel) . En réponse au message concaténer et dé-dupliquer fichiers. Évalué à 2. Dernière modification le 14 février 2017 à 14:57.

    Quelques remarques:

    1. Attention à la protection des variables, tout explose si les variables ont plusieurs mots!

    [[ "${valeur}" == "${ancienvaleur}" ]]

    Et puis quitte à utiliser des mots français, autant accorder l'adjectif, non? :)

    1. echo n'est ni robuste ni portable et ne doit être utilisé que pour des messages fixes.

    printf '%s,%s\n' "${ancienvaleur}" "${anciencommentaire}"

    1. Ton programme a un petit problème d'IFS, il lit le # dans anciencommentaire.

    2. Il crée une ligne supplémentaire , au tout début!

    En traduisant le code en sh cela devient donc

     sort -nk1 fichier_source | while IFS='# ' read valeur commentaire
     do
     if [ "${valeur}" = "${ancienvaleur}" ]
     then
     newcommentaire="${anciencommentaire},${commentaire}"
     elif [ -n "${ancienvaleur}" ]
     printf '%s,%s\n' "${ancienvaleur}" "${anciencommentaire}"
     newcommentaire="${commentaire}"
     fi
     anciencommentaire="${newcommentaire}"
     ancienvaleur="${valeur}"
     done

    (Il y a un petit problème de mathjax dans le bloc de code avec tripe contr'apostrophe, désolé pour le formatage.)