Forum Programmation.shell SED/AWK/Shell : Remplacement d'une portion de texte par une autre.

Posté par  .
Étiquettes : aucune
0
24
août
2005
Bonjour,

J'ai écrit de script de migration pour une base de données orcale.
J'ai une dizaine de script ou je voudrais remplacer uen requête par une autre par exemple :

Remplacer
SELECT REF_ID
FROM REF, ACH
WHERE REF_ID=ACH_ID
AND ACH_FLU_FK='START'

par
SELECT REF_ID
FROM REF, ACH
WHERE REF_ID=ACH_ID
AND REF_ID='TOTO'
AND ACH_FLU_F_FK='TITI'

Comment puis-je faire cela ?

Merci de votre aide.
  • # \_o<

    Posté par  (site web personnel) . Évalué à 2.

    cat file1 | sed 's/START/TITI/g' >file2

    a tester ...

    tu peux faire des trucs plus restrictifs, comme dans le genre

    cat file1 | sed 's/AND ACH_FLU_F_FK=\'START\'/AND ACH_FLU_F_FK=\'TITI\'/g' >file2

    mais comme tu vois, des qu il faut echapper, ca devietn tout de suite moins lisible :)

    et meme la je suis moins sur de mon coup :S

    mais sur le princpe, c est:

    sed 's/viremoi/metmoi/g'

    puis, si faut remplacer les viremoi seulemetn si ils sont precedes ou suivis d autre chose, c est possible, mais apres faut echapper des trucs, et ca devient illisible pour mon exemple.

    cherhce dans google:
    tutorial sed
    tutorial regexp

    ou
    man sed
    • [^] # Re: \_o<

      Posté par  . Évalué à 2.

      man sed

      sous aix:

      sed Command

      Purpose

      Provides a stream editor.

      Syntax

      sed [ -n ] Script [ File ... ]



      sed 's/START/TITI/g' file1 |>file2

      Pourquoi cette manie d'ajouter des cat partout ?

      Imagine le truc dans une boucle, a chaque iteration tu as droit a un fork+exec, et ca fait perde du temps.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.