Scripter sous VI

Bonjour
comment c'est y qu'on fait pour scripter vi ?

genre effacer les lignes contenant truc
remplacer les mots toto par titi
et enregistrer le ficier ?

j'ai essaye de faire

vi test.txt << EOT
g/truc/d
s/toto/titi
wq
EOT
mais ca merdoie...
donc j'ai du oublier un truc...

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. tu as oublier les :
    :g/......./commande
    :%s/..../.....
    :x!
    EOT
    1. exemple concret
      linux:/tmp # cat > FICHIER.TEST
      fdsfdsfdsfdsf
      tutu
      fdsfdsfdsfdsf
      dsfdsfdffdsd
      dfsdfdsfdsfsd
      dsfdsfdsfdfds
      toto
      fdsfdsfdsfdsf
      dsfdsfdffdsd
      dfsdfdsfdsfsd
      dsfdsfdsfdfds
      toto
      linux:/tmp # vi FICHIER.TEST << EOT 2>&1 /dev/null
      > :g/tutu/d
      > :s/toto/titi
      > :x
      > EOT
      linux:/tmp # cat FICHIER.TEST
      fdsfdsfdsfdsf
      fdsfdsfdsfdsf
      dsfdsfdffdsd
      dfsdfdsfdsfsd
      dsfdsfdsfdfds
      titi
      fdsfdsfdsfdsf
      dsfdsfdffdsd
      dfsdfdsfdsfsd
      dsfdsfdsfdfds
      titi
      linux:/tmp #

      voila...
      attention je me suis trompe sur le message precedent c'est s/trucaremplacer/trucquileremplace la commande de changement.
      1. si je peux abuser
        quelle est la commande vi pour trier un bloc de lignes ?

        merci
        1. c bon j'ai trouve grace a une doc nome "guide de survie sous vi"

          c'est :5,7! sort
          pour trier les lignes 5,6,7 par exemple
          :10,$! sort
          pour trier de la 10 a la fin
          etc.......