Fusionner des lignes

Résolu/Fermé
McFred - 21 janv. 2013 à 11:18
 McFred - 21 janv. 2013 à 15:55
Bonjour,

Je cherche un moyen de fusionner des lignes en une seule sur ce principe en perl ou en shell

Mon fichier d'entrée:
DR1;;;;;;;;;;;X;X;X;X;X;;;;;;;;;;;
DR1;;;X;X;;;;;;;;;;;;;;;;;;;;;
DR1;;;;;;;;;;;;;;;;;;;;;X;X;X;;
DR2;;;;;;;;;;;;;;;;;;;;;;;;;
DR3;;;;;X;X;;;;;;;;;;;;;;;;X;X;X;
DR3;;;X;;;;;;X;X;X;;;;;;;;;;;;

et en sortie je voudrai
DR1;;;X;X;;;;;;X;X;X;X;X;;;;;;X;X;X;;
DR2;;;;;;;;;;;;;;;;;;;;;;;;;
DR3;;;X;;X;X;X;X;X;;;;;;;;;;X;X;X;

Merci pour votre aide

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 21/01/2013 à 14:38
hello
faut-il garder tous les ; ?
awk 'BEGIN{FS=OFS=";"} {x=$1; $1=""; t[x]=t[x] $0}END{for(n in t)print n,t[n]}' fichier
DR1;;;;;;;;;;;;X;X;X;X;X;;;;;;;;;;;;;;X;X;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X;X;X;;
DR2;;;;;;;;;;;;;;;;;;;;;;;;;;
DR3;;;;;;X;X;;;;;;;;;;;;;;;;X;X;X;;;;X;;;;;;X;X;X;;;;;;;;;;;;
0
hello dubcek,

Je te remercie pour ta réponse ! Nickel le awk .

et oui, il faut que je garde les ";" .

Au plaisir
0