Sed traiter seulement certaine ligne

Résolu/Fermé
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 14 sept. 2007 à 10:39
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 14 sept. 2007 à 14:53
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 sept. 2007 à 10:59
Re-
sed  '/\/\*/,/\*\//d' fichier
;-))
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 11:01
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 sept. 2007 à 11:12
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 jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 11:29
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 sept. 2007 à 11:33
Il faut regrouper les commandes séparées par des points virgules (;) entre "accolades".
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 11:57
merci
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 14:26
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 sept. 2007 à 14:38
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 jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 14:45
supprimer toutes les lignes se trouvant hors des commantaire /* */ comportant dcl_2d ou dcl
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 sept. 2007 à 14:52
sed -e '/\/\*/,/\*\//! {/dcl[_2d]*/d}'
;-)
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 14:53
encore mieux, merci encore car sans vous j'avancerai pas
0