Concatener deux lignes sur une seul d'un fichier

Résolu
JsuisNul Messages postés 137 Statut Membre -  
JsuisNul Messages postés 137 Statut Membre -
Bonjour,

Je suis débutant en script shell.
Je vous explique ce que j'ai et ce que j'aimerai obtenir.
J'ai donc un fichier de longueur fixe sans séparateur en entrée construit de la sorte.

identifiant1donnée1
identifiant1donnée2
identifiant2donnée1
identifiant2donnée2

je souhaiterai avoir ceux-ci :

identifiant1donnée1donnée2
identifiant2donnée1donnée2

Quelqu'un aurait une idée s'il vous plait ?

Merci d'avance

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ awk 'BEGIN{FIELDWIDTHS="12 8"} {t[$1]=t[$1] $2} END{for(n in t)print n t[n]}'  fichie
    identifiant1donnée1donnée2
    identifiant2donnée1donnée2
    $ 
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    mon awk traite mal les caractères UTF avec FIELDWIDtHS
    essayer
    $ sed -r 's/^(.{12})/\1 /' fichier | awk '{t[$1]=t[$1] $2} END{for(n in t)print n t[n]}' 
    identifiant1donnée1donnée2 
    identifiant2donnée1donnée2 
    $  
    
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
       
      Salut,

      Tant qu'à utiliser sed...

      $ sed -r 'N;s/(.*)\n.{12}(.*)/\1\2/' brol 
      identifiant1donnée1donnée2
      identifiant2donnée1donnée2

      ;-))
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      awk doit laver cet affront :-)
      $ awk '{c1=substr($0, 1, 12); c2=substr($0, 13, 7); t[c1]=t[c1] c2} END{for(n in t)print n t[n]}'  fichier
      identifiant1donnée1donnée2
      identifiant2donnée1donnée2
      
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
       
      ;-))
      0
  3. JsuisNul Messages postés 137 Statut Membre 1
     
    Merci à tous pour vos réponses très rapides !!!

    je vais tester et vous faire un retour rapidement.

    Merci encore !!

    ;-))
    0
    1. JsuisNul Messages postés 137 Statut Membre 1
       
      Merci à tous pour votre aide mais mon chef à changer d'avis donc plus de script...
      :-((
      A+
      0