Delete de lignes sous VI

Résolu
Bonjour,

Je recherche la commande qui me permettra de supprimer toutes les lignes qui correspondent au motif suivants

Motif AAAAAAAXXXXXXXXX

J'ai essayé avec la commande suivante: /AAAAAAAXXXXXXXXX/d
Elle me retire qu'une ligne du fichier
J'ai essayé avec 1,$/AAAAAAAXXXXXXXXX/d Ne marche pas

Exemple de fichier :

1111111111113333333333444444444444
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
RRRRRRRRRRRRRRRRRRRRRRRRRRRR
AAAAAAAXXXXXXXXX

222222222222222222222222222222222
DDDDDDFFFFFFFFFFFFFFFFFFFFf
FFFFFFFFFFGGGGGGGGGGGGGGGGGGGGG
GHHHHHHHHHHHHHHHHHHHHHHHH
AAAAAAAXXXXXXXXX

UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUfffffff
mmmmmmmmmmmmmmmmmmmmmmmtttttttt
pppppppppppppppppppppppppppppp
AAAAAAAXXXXXXXXX

Merci
Configuration: Unix AIX

10 réponses

  1. Slt

    Merci
    Mais si on veut uniquement à partir de la ligne 5 jusqu'à la fin donc on ne garde que le premier motif?
    1. Modérateur
      :5,$ g/AAAAAAAXXXXXXXXX/d
  2. Ok merci ça marche

    Merci pour l'aide et bon week-end
    1. Modérateur
      De rien, bon week-end à toi aussi ;-))
  3. Slt,

    J'ai un soucis avec la commande g/AAAAAAAXXXXXXXXX/d ou 5,$ g/AAAAAAAXXXXXXXXX/d elle ne passe pas en batch
    y a t-il une option pour la commande

    ci-joint la commande batch:
    cat mon_fichier|sed -e "g/AAAAAAAXXXXXXXXX/d" >mon_nouveau_fichier

    ou

    cat mon_fichier|sed -e "1,$ g/AAAAAAAXXXXXXXXX/d" >mon_nouveau_fichier

    idem pour les deux le message est sed : commande incoherente : 1,$ g/AAAAAAAXXXXXXXXX/d
    1. Modérateur
      Il ne faut pas confondre l'éditeur "vi" et la commande "sed" (éditeur orienté lignes) :
      sed -i.bak '/AAAAAAAXXXXXXXXX/d' fichier
      sed -i.old '5,$ /AAAAAAAXXXXXXXXX/d'  fichier
      ;-))
      1. Bon en effectuant une nouvelle tentative je constate qu'il ne faut pas mettre le g ou le 1,$ g dans le script mais uniquement la syntaxe suivante

        sed -e "/AAAAAAAXXXXXXXXX/d"

        et la miracle toutes les lignes du motif disparaisse
        1. Je voudrais copier dans un fichier la ligne 1 jusqu'au 1er motif AAAAAAAXXXXXXXXX j'ai essayé avec la syntaxe suivante mais ca ne marche pas

          cat mon_fichier|sed -e '1,/AAAAAAAXXXXXXXXX' >mon_nouveau_fichier

          comment faire??
          1. Petite précision la syntaxe 1,/AAAAAAAXXXXXXXXX/' fonctionne bien sous vi mais pas en batch