Remplacement d'une chaine de caractères

Coco -  
zipe31 Messages postés 38797 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.

A voir également:

1 réponse

zipe31 Messages postés 38797 Date d'inscription   Statut Contributeur Dernière intervention   6 435
 
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