Script shell,Modifie chaque premier caractère

farrous3.7 Messages postés 45 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

En faite pour faire court, je voudrai rendre un fichier plus lisible en modifiant chaque premier caractère par sa signification.
Voici le fichier d'origine:

D4/8/02
ORemboursement prêt
$-210.50
^
D20/6/02
OAchat de voiture
AGarage La Bécane
A3, rue la Vitesse
A45000 Orléans
^

Et voici à quoi le résultat doit ressembler :

Date: 4/8/02
Objectif: Remboursement prêt
$-210.50
.
.
Date: 20/6/02
Objectif: Achat de voiture
Adresse: Garage La Bécane
3, rue la Vitesse
45000 Orléans

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Ça c'est un travail pour "sed" ;-))
    0
    1. farrous3.7
       
      Merci beaucoups
      0
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Avec l'exemple que tu as donné, voilà ce que ça pourrait donner :

    $ cat plop
    D4/8/02
    ORemboursement prêt
    $-210.50
    ^
    D20/6/02
    OAchat de voiture
    AGarage La Bécane
    A3, rue la Vitesse
    A45000 Orléans
    ^
    
    $ cat format.sed 
    s/^\^//                                
    s/^D/Date : /                          
    s/^O/Objectif : /                      
    s/^A/Adresse : /                       
    
    $ cat pre_format.sed 
    /^A/ {                                 
        :z                                 
        N                                  
        /\nA/ s/\nA/|/g                    
        b z                                
    }                                      
    
    $ sed -f format.sed < <(sed -f pre_format.sed plop) | sed 's/|/\n/g'
    Date : 4/8/02
    Objectif : Remboursement prêt
    $-210.50
    
    Date : 20/6/02
    Objectif : Achat de voiture
    Adresse : Garage La Bécane
    3, rue la Vitesse
    45000 Orléans
    
    
    $

    ;-))
    0