Remplacer une chaine de caractère entre 2 mots

Résolu/Fermé
yilmaz2189 - Modifié par yilmaz2189 le 3/07/2013 à 16:27
 yilmaz2189 - 3 juil. 2013 à 16:46
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
3 juil. 2013 à 16:30
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
3 juil. 2013 à 16:37
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
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