Forum Astuces.divers [Editeur] De DOS à Unix sous joe

Posté par  .
Étiquettes : aucune
0
25
mar.
2002
Pour virer tous les ^M, sous joe faire:
- ^K F (ctrl+k+f: rechercher)
- \015
- r (remplacer)
- enter (par rien)
- r (sur le reste du texte)

Ainsi on converti le texte de dos à unix.
Pour voir et écrire les fichiers textes au format dos: ^K Z
  • # ouééééééé

    Posté par  . Évalué à 1.

    je ne suis pas le seul au monde a utiliser joe!!!!
    • [^] # Re: ouééééééé

      Posté par  . Évalué à 1.

      n'ayant jamais eu le courage d'apprendre vi ou emacs, je suis aussi un fan de joe ;-)
      • [^] # Re: ouééééééé

        Posté par  . Évalué à 1.

        On est 3 les gars!
        Pour moi l'énoOorme avantage de joe face à vi c'est que quand on est dedans on fait CTRL-C et on sort, tandis qu'avec vi j'ai déjà vu des étudiants rebooter la machine ;-((
  • # Re: De DOS à Unix sous joe

    Posté par  . Évalué à 2.

    mouais... Pour ma part, je préfère utiliser des petits utilitaires tout simples qui font ça (et rien que ça) automatiquement.

    Il y en a un qui s'appelle tofromdos dans le paquet sysutils, avec les commandes dos2unix et unix2dos comme wrapper.

    C'est :
    - plus simple ;
    - automatisable ;
    - et ça n'enlève que les retours chariot suivis d'un saut de ligne (sauf ordre explicite). ;-)

    mes 2¢
    • [^] # Re: De DOS à Unix sous joe

      Posté par  . Évalué à 1.

      ben moi j'ai pas dos2unix et unix2dos installé par defaut ;)

      A defaut, je me contente parfaitement d'un

      tr -d '\r' > unix.txt < dos.txt

      Le seul défaut c'est que çà enlève un retour-chariot même s'il n'est pas accompagné d'un saut de ligne. Mais bon, je vois pas l'intérêt d'avoir un retour chariot seul dans fichier texte...
      • [^] # Re: De DOS à Unix sous joe

        Posté par  (site web personnel) . Évalué à 1.

        sed 's/\\r$//g' monfichier > monfichiercorrige Mais bon, ca oblige à passer par un fichier-buffer si le but est de remplacer les \r du fichier courant directement.
        • [^] # Re: De DOS à Unix sous joe

          Posté par  . Évalué à 1.

          sed -i 's/\\r$//g' monfichier

          selon la version de sed, le -i fait que le monfichier est remplacé par le nouveau. Plus besoin de passer par un fichier tampon. :)
  • # Divers moyens de convertir

    Posté par  (site web personnel) . Évalué à 2.

    dos2unix file
    (from the sysutils package)

    recode l1/crlf..l1 file
    (from the recode package)

    konwert -O lf file
    (from the konwert package)

    tr -d '\015' <> file.new
    (no non-base packages required)

    cr - file file.new
    (from the seesat5 package)

    :g/^V$/s///
    (using vim: ^V=ctrl+v)

    :g/^V^M$/s///
    (using vim: ^M=ctrl+M)


    Source: http://snoopy.apana.org.au/~bam/debian/faq/#msdos:textconvert(...)
    • [^] # Re: Divers moyens de convertir

      Posté par  . Évalué à 1.

      Sous vim également :
      :set ff=unix

      Ou bien, pour la transformation inverse :
      :set ff=dos
      • [^] # Re: Divers moyens de convertir

        Posté par  . Évalué à 1.

        Ca c'est pour spécifier le format du fichier, mais pour supprimer les ^M sur tout le fichier la commande est :

        :%s/^M//

        le "%" c'est pour dire "sur toutes les lignes"
        le " s/.../..../ " c'est pour remplacer un pattern (a la sed)
        • [^] # Re: Divers moyens de convertir

          Posté par  . Évalué à 1.

          il y a aussi le fameux !Gcol -b puis entrée qui fait ça

          A noter que pour produire un ^M dans la ligne ":%s/^M//" on peut taper ^V puis entrée.
    • [^] # Re: Divers moyens de convertir

      Posté par  . Évalué à 1.

      Sans oublier perl -pie 's#\r\n#\n#gs' fichier
      • [^] # Re: Divers moyens de convertir

        Posté par  . Évalué à 1.

        Plutot perl -pi -e

        non?
        • [^] # De Mac aussi

          Posté par  . Évalué à 1.

          Plutot perl -pi -e

          C'est ce que je me disais aussi...

          Pour les non initiés, l'option -i, indiquant la modification en place du fichier, prend en argument un suffixe pour un éventuel backup de sorte que
          perl -pi.dos -e 's#\r\n#\n#gs' fichier
          conservera l'ancienne version sous le nom fichier.dos .

          À noter que cette version ne convertit les \r qu'associés à un \n, préservant les autres, alors que la variante suivante :
          perl -pi -e 's#\r\n?#\n#gs' fichier
          permet par contre de convertir indifféremment les fin de ligne des fichiers texte DOS/Windows et MacOS (au moins jusqu'à MacOS 9, les fins de lignes sont composées d'un retour chariot uniquement), tout en laissant inchangés les fichiers texte Unix.

          « Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone

    • [^] # Re: Divers moyens de convertir

      Posté par  (site web personnel) . Évalué à 1.

      et sous emacs/mule:
      menu: Mule/set coding system/buffer file:
      "rawtext-unix" puis File/save
      pour convertir de dos vers unix

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.