Sed traiter seulement certaine ligne

Résolu
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -
bonjour

j'ai créé un script qui utilise essentielement sed et je voudrait que celui ci ne traite dans les fichier que les ligne ne se trouvant pas entre les caracteres "/*" et "*/"

quelquun aurait t'il une idée , merci
A voir également:

11 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Re-
sed  '/\/\*/,/\*\//d' fichier
;-))
0
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
merci

dis-donc c'est toi le pro du sed sur ce forum ??

apparemnt sed '/\/\*/,/\*\//d' fichier va me supprimer ce qui ce trouve entre /* et */ mais le souci c'est que je veut garder ces commentaires et juste ne pas les traiter

aurait tu une astuce pour ça ?
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Suffit d'employer la négation, représentée par un point d'exclamation ( ! )
sed  '/\/\*/,/\*\//! {traitement à effectuer}' fichier
;-))
0
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
ma commande sed contient plusieurs -e déjà , suis je obligé de mettre '/\/\*/,/\*\//! au début de chaque traitement ou peut t'on faire autrement ( avec un pipe peut être mais je sais pas comment ça marche...)

merci
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 faut regrouper les commandes séparées par des points virgules (;) entre "accolades".
0
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
merci
0
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
encore un petit truc
je lorsque j'appelle sed -e '/\/\*/,/\*\//! /\<dcl_2d\|dcl\>/d' celui si me retourne une erreur , comment contourner cela
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Tu veux faire quoi exactement ? Supprimer certaines lignes comprises dans un intervalle ?
sed -e '/\/\*/,/\*\//! {/\<dcl_2d\|dcl\>/d}'
;-)
0
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
supprimer toutes les lignes se trouvant hors des commantaire /* */ comportant dcl_2d ou dcl
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
sed -e '/\/\*/,/\*\//! {/dcl[_2d]*/d}'
;-)
0
vieurou Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   2
 
encore mieux, merci encore car sans vous j'avancerai pas
0