Delete de lignes sous VI

Résolu
stephbret56 Messages postés 195 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    :g/AAAAAAAXXXXXXXXX/d
    ;-))
    0
  2. stephbret56 Messages postés 195 Statut Membre 6
     
    Slt

    Merci
    Mais si on veut uniquement à partir de la ligne 5 jusqu'à la fin donc on ne garde que le premier motif?
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      :5,$ g/AAAAAAAXXXXXXXXX/d
      0
  3. stephbret56 Messages postés 195 Statut Membre 6
     
    Ok merci ça marche

    Merci pour l'aide et bon week-end
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      De rien, bon week-end à toi aussi ;-))
      0
  4. stephbret56 Messages postés 195 Statut Membre 6
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    ;-))
    0
  7. stephbret56 Messages postés 195 Statut Membre 6
     
    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
    0
  8. stephbret56 Messages postés 195 Statut Membre 6
     
    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??
    0
  9. stephbret56 Messages postés 195 Statut Membre 6
     
    Petite précision la syntaxe 1,/AAAAAAAXXXXXXXXX/' fonctionne bien sous vi mais pas en batch
    0
  10. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    sed -n '1,/AAAAAAAXXXXXXXXX/w new_fichier' ton_fichier 
    0
  11. stephbret56 Messages postés 195 Statut Membre 6
     
    Ok ça marche est dans la même chose mais je veux faire le delete de la 1er ligne jusqu'au 1er motif
    0