Formatage de fichier texte

Résolu
Bonjour,

Connaissez-vous la commande permettant de savoir si un fichier texte est au format UNIX, PC, ou MAC ?

Merci :-)
Configuration: Windows XP
Firefox 2.0.0.7

29 réponses

Résumé de la discussion

La discussion porte sur la détermination du format de fin de ligne d’un fichier texte (UNIX, PC ou MAC) et les méthodes disponibles sous Windows XP. Plusieurs propositions s’appuient sur grep pour détecter les retours chariot, cat -A pour afficher les caractères invisibles et sed pour tester ou transformer le contenu. D’autres suggèrent dos2unix pour convertir les fins de ligne et vérifient le résultat avec des commandes comme grep, stat ou awk, afin d’identifier rapidement le format. En cas d’incertitude, certaines réponses recommandent aussi l’utilisation de tests complémentaires ou de compression pour isoler l’origine d’un comportement inattendu.

Bobot (l’IA à votre service)
  1. Modérateur
    grep '^M' ktoYFLHY65_Document1.txt
    ne renvoie rien

    il ne faut pas taper ^M mais CTRL+V suis de CTRL+M et ça te donnera ^M

    donc
    grep 'Ctrl+VCtrl+M' fichier.txt
    --

    lami20j
    1. Ah ben chez moi:
      grep '^M' ktoYFLHY65_Document1.txt
      ne renvoie rien

      votre shell c bash aussi ?
      1. Modérateur
        Moi je vois bien que t'es lignes se finissent avec CR
        root@debian:~/trash# cat ktoYFLHY65_Document1.txt | perl -ne 's/(.)/ord($1)/eg;print'
        11610410510111411412113
        1161011151163213
        971159910510513
        13
        13
        root@debian:~/trash#
        --

        lami20j
        1. Modérateur
          Bon ben chez moi il n'y a aucun soucis ;-\
          [tmpfs]$ file ktoYFLHY65_Document1.txt
          ktoYFLHY65_Document1.txt: ASCII text, with CRLF line terminators
          
          [tmpfs]$ cat -A ktoYFLHY65_Document1.txt
          thierry^M$
          test ^M$
          ascii^M$
          ^M$
          ^M$
          
          [tmpfs]$ grep '^M' ktoYFLHY65_Document1.txt
          thierry
          test
          ascii
          
          
          [tmpfs]$ sed -n l ktoYFLHY65_Document1.txt
          thierry\r$
          test \r$
          ascii\r$
          \r$
          \r$
          
          [tmpfs]$
          Remarque avec la commande "file" le type de fin de ligne qui est indiqué... peut être une piste à exploiter.
          1. Ca y est
            http://cjoint.com/data/ktoYFLHY65.htm
            C juste DOcument1.txt fait avec textpad sous windows

            (Textpad permet de choisir le type d'enregistrement (PC, MAC UNIX..)
            1. Modérateur
              avant de les mettre sur cjoint vaut peut être mieux de les compresser.
              1. Modérateur
                Tu peux mettre ton fichier DOS sur Cjoint s'il te plaît que je teste ça chez moi pour déterminer si ça vient du fichier ou d'ailleurs, merci.
                1. Modérateur
                  Fais un grep sans le cat avant pour voir ce qu'il en ressort vraiment...
                  1. cat -A Document1.txt && grep -E '^M' Document1.txt ;echo $?
                    thierry^M$
                    test ^M$
                    ascii^M$
                    ^M$
                    ^M$
                    1

                    Pareil :-|
                    1. Je viens de voir un truc intéressant mais ca utilise tr et non grep :
                      http://perso.orange.fr/gleu/absfr.tuxfamily.org/abs-2.3-fr/textproc.html
                      "Exemple 12-17. Du: Convertit les fichiers text DOS vers UNIX"

                      Et le grep ne fonctionne pas sur "\015" :-|
                      1. cat -A Document1.txt && grep '^M' Document1.txt
                        thierry^M$
                        test ^M$
                        ascii^M$
                        ^M$
                        ^M$

                        Etonnant !
                        1. Modérateur
                          Bon concernant la taille avec "stat", essaie plutôt :
                          stat -c 'Size : %s' fichier
                          et pour en revenir à ton autre problème, affiche le résultat de :
                          cat -A Document1.txt && grep '^M' Document1.txt
                          sur le fichier formaté en DOS.
                          1. grep '^M' Document1.txt >/dev/null;echo $?
                            1
                            stat Document1.txt|grep Size|awk '{print $1$2}'
                            Size:27
                            dos2unix Document1.txt && grep '^M' Document1.txt >/dev/null;echo $?
                            1
                            stat Document1.txt|grep Size|awk '{print $1$2}'
                            Size:22
                            1. Modérateur
                              Affiche maintenant tes commandes sur tes fichiers et le résultat à l'écran, merci.
                              • 1
                              • 2