Delete de lignes sous VI

Résolu
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   -  
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

10 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,
:g/AAAAAAAXXXXXXXXX/d
;-))
0
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
:5,$ g/AAAAAAAXXXXXXXXX/d
0
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   6
 
Ok merci ça marche

Merci pour l'aide et bon week-end
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
De rien, bon week-end à toi aussi ;-))
0
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   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
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   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
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   6
 
Petite précision la syntaxe 1,/AAAAAAAXXXXXXXXX/' fonctionne bien sous vi mais pas en batch
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
sed -n '1,/AAAAAAAXXXXXXXXX/w new_fichier' ton_fichier 
0
stephbret56 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
sed -n '1,/AAAAAAAXXXXXXXXX/! w new_fichier' ton_fichier 
Voir : SED - The Stream EDitor - Part II - La négation
0