Remplacement d'une chaine de caractères

Fermé
Coco - 22 juil. 2013 à 21:35
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 23 juil. 2013 à 10:35
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 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
23 juil. 2013 à 10:35
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