Remplacement d'une chaine de caractères

Coco -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrai écrire un script permettant de faire un remplacement d'une chaîne de caractères sur plusieurs lignes,
@tag:clef
public Type var1 = new Type1(val, Type2.val)

Et remplacer ces deux lignes par,

var1 = new Type1(get ("clef", var1.getValue (Type2.val)), Type2.val)

D'avance merci.

Cdlt.

1 réponse

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

    $ cat brol
    blabla
    bla bla
    @tag:clef
    public Type var1 = new Type1(val, Type2.val) 
    bla bla bla
    bla
    
    $ cat script.sed 
    /^@tag:clef/{
    N
    c var1 = new Type1(get ("clef", var1.getValue (Type2.val)), Type2.val)
    }
    
    $ sed -i.bak -f script.sed brol 
    
    $ cat brol
    blabla
    bla bla
    var1 = new Type1(get ("clef", var1.getValue (Type2.val)), Type2.val)
    bla bla bla
    bla
    
    $


    Et si tu ne veux pas t'embêter avec un fichier de script (script.sed), tu utilises le mécanisme de substitution :

    $ sed '/^@tag:clef/{N;s/.*/var1 = new Type1(get ("clef", var1.getValue (Type2.val)), Type2.val)/}' brol 
    blabla
    bla bla
    var1 = new Type1(get ("clef", var1.getValue (Type2.val)), Type2.val)
    bla bla bla
    bla

    0