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

A voir également:

3 réponses

dubcek Messages postés 19021 Statut Contributeur 5 638
 
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
dubcek Messages postés 19021 Statut Contributeur 5 638
 
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
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Tant qu'à utiliser sed...

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

;-))
0
dubcek Messages postés 19021 Statut Contributeur 5 638
 
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
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
;-))
0
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
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