Mise en forme d'un fichier avec awk/sed

Résolu
romzzzz -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je dispose d'un fichier ayant cette forme :

CODE : 1590
CODE : 1590
./spr/el/ampt/src/spr_bras.c
CODE : 1500
CODE : 1510
CODE : 1530
CODE : 1540
CODE : 1550
CODE : 1570
CODE : 1600
CODE : 1620
CODE : 1640
CODE : 1670
CODE : 1675
./spr/el/defr/src/spr_defr_anomat.c
CODE : 2000
CODE : 2010
CODE : 2020
CODE : 2030
CODE : 2040
CODE : 2050
CODE : 2060
./spr/el/gsys/src/spr_gsys_p.c

et je voudrais qu'il soit sous cette forme après traitement :

CODE : 1590 ./spr/el/ampt/src/spr_bras.c
CODE : 1590 ./spr/el/ampt/src/spr_bras.c
./spr/el/ampt/src/spr_bras.c
CODE : 1500 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1510 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1530 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1540 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1550 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1570 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1600 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1620 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1640 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1670 ./spr/el/defr/src/spr_defr_anomat.c
CODE : 1675 ./spr/el/defr/src/spr_defr_anomat.c
./spr/el/defr/src/spr_defr_anomat.c
CODE : 2000 ./spr/el/gsys/src/spr_gsys_p.c
CODE : 2010 ./spr/el/gsys/src/spr_gsys_p.c
CODE : 2020 ./spr/el/gsys/src/spr_gsys_p.c
CODE : 2030 ./spr/el/gsys/src/spr_gsys_p.c
CODE : 2040 ./spr/el/gsys/src/spr_gsys_p.c
CODE : 2050 ./spr/el/gsys/src/spr_gsys_p.c
CODE : 2060 ./spr/el/gsys/src/spr_gsys_p.c
./spr/el/gsys/src/spr_gsys_p.c

Quelqu'un pourrait me sortir un tel script parce que mon fichier fait 14017 lignes...
Merci !

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ awk '/CODE/ {n[i++]=$0}; $1 !~ /CODE/ {for(m=0;m<i;m++)print n[m],$0 ; print ; i=0}' fichier
    CODE : 1590 ./spr/el/ampt/src/spr_bras.c
    CODE : 1590 ./spr/el/ampt/src/spr_bras.c
    ./spr/el/ampt/src/spr_bras.c
    CODE : 1500 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1510 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1530 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1540 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1550 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1570 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1600 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1620 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1640 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1670 ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 1675 ./spr/el/defr/src/spr_defr_anomat.c
    ./spr/el/defr/src/spr_defr_anomat.c
    CODE : 2000 ./spr/el/gsys/src/spr_gsys_p.c 
    CODE : 2010 ./spr/el/gsys/src/spr_gsys_p.c 
    CODE : 2020 ./spr/el/gsys/src/spr_gsys_p.c 
    CODE : 2030 ./spr/el/gsys/src/spr_gsys_p.c 
    CODE : 2040 ./spr/el/gsys/src/spr_gsys_p.c 
    CODE : 2050 ./spr/el/gsys/src/spr_gsys_p.c 
    CODE : 2060 ./spr/el/gsys/src/spr_gsys_p.c 
    ./spr/el/gsys/src/spr_gsys_p.c 
    $ 
    
    1
  2. romzzzz
     
    OK, c'est parfait ! Je ne pensais pas ca réalisable en une seule ligne !

    Merci beaucoup !
    0
    1. romzzzz
       
      Au passage tu ne connaitrais pas un bon tutoriel pour apprendre awk ?
      0