Remplacer une chaine de caractère entre 2 mots

Résolu
yilmaz2189 -  
 yilmaz2189 -
Bonjour,
Dans un fichier texte je voudrai remplacer tout ce qui se trouve entre select et from par * par exemple :
select T1.TIMESTAMP, T1.M_IDENTITY, T1.M__TYPE_, T1.M__INTID_, T1.M_REFERENCE, T1.M_INST_TYPE, T1.M_PACK_INTID from CONTRACT_DBF T1 where T1.M_REFERENCE = 55116
Je souhaite que ça devienne select * from CONTRACT_DBF T1 where T1.M_REFERENCE = 55116
Pour information j'ai dèja pas mal chercher sur google et dans le man de sed mais rien à faire rien ne fonctionne
Merci d'avance à tout le monde
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

$ echo $var
select T1.TIMESTAMP, T1.M_IDENTITY, T1.M__TYPE_, T1.M__INTID_, T1.M_REFERENCE, T1.M_INST_TYPE, T1.M_PACK_INTID from CONTRACT_DBF T1 where T1.M_REFERENCE = 55116

$ echo $var | sed 's/\(select \).*from/\1*/'
select * CONTRACT_DBF T1 where T1.M_REFERENCE = 55116

$ 

1
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Oups je n'avais pas vu qu'il fallait aussi garder le "from" ;-((

$ echo $var | sed 's/\(select \).*\( from \)/\1*\2/'
select * from CONTRACT_DBF T1 where T1.M_REFERENCE = 55116

$ 
0
yilmaz2189
 
hee bas ça, c'est du rapide et parfait en plus oneshot, ça fonctionne nickel. Je sais pas ce que j'aurai fais sans toi merci beaucoup :)
0