Forum Programmation.shell Modification de texte

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
30
août
2018

Hello All,

J'aurais besoin de vous pour la création d'un script de modification de texte.

En faite j'ai un fichier source en .txt sous cette forme:

User1
Password1
User2
Password2
etc…

Et j'aimerais un fichier de sortie en .csv sous cette forme:

User1;User1;Password1
User2;User2;Password2

Ceci afin de pouvoir importer facilement les données dans un gestionnaire de mot de passe.

Merci!

  • # sed est ton ami

    Posté par  . Évalué à 7.

    sed 'h;G;N;s/\n/;/g'
    
    • [^] # Re: sed est ton ami

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

      J'utilise sed à l'occasion, mais là c'est un peu obscur pour moi… Si tu pouvais explique un peu ce serait top.

      PS: il doit manquer un < monfichier.txt à la fin aussi…

    • [^] # Re: sed est ton ami

      Posté par  (site Web personnel) . Évalué à 7. Dernière modification le 31/08/18 à 11:18.

      Ok, après avoir consulté ce guide sed:

      h va copier la ligne lue dans le hold buffer, pour la mettre de côté
      G va ajouter sur une nouvelle ligne le contenu du hold buffer à la fin du pattern space
      N ajoute la ligne suivante à la fin du pattern space

      Donc h;G va dupliquer la ligne lue, pour avoir:

      User1
      User1

      Puis N va lire la ligne suivante:

      User1
      User1
      Password1

      Ensuite le (plus connu) s/\n/;/g va remplacer les retours chariot par des ;, ce qui donne :

      User1;User1;Password1

      Et ainsi de suite…
      Faudrait vraiment que je me penche sur le traitement multi-ligne avec sed…

  • # Commentaire supprimé

    Posté par  . Évalué à -2. Dernière modification le 01/09/18 à 15:41.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # hum

    Posté par  . Évalué à 3.

    que se passe t'il si un des mots de passe contient un ; ?

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

Suivre le flux des commentaires

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