Sed traiter seulement certaine ligne
Résolu
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
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
Configuration: Linux Firefox 2.0.0.6
11 réponses
-
ModérateurRe-
sed '/\/\*/,/\*\//d' fichier
;-))
-
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 ? -
ModérateurSuffit d'employer la négation, représentée par un point d'exclamation ( ! )
sed '/\/\*/,/\*\//! {traitement à effectuer}' fichier;-))
-
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 -
ModérateurIl faut regrouper les commandes séparées par des points virgules (;) entre "accolades".
-
merci
-
encore un petit truc
je lorsque j'appelle sed -e '/\/\*/,/\*\//! /\<dcl_2d\|dcl\>/d' celui si me retourne une erreur , comment contourner cela -
ModérateurTu veux faire quoi exactement ? Supprimer certaines lignes comprises dans un intervalle ?
sed -e '/\/\*/,/\*\//! {/\<dcl_2d\|dcl\>/d}';-)
-
supprimer toutes les lignes se trouvant hors des commantaire /* */ comportant dcl_2d ou dcl
-
Modérateur
sed -e '/\/\*/,/\*\//! {/dcl[_2d]*/d}';-)
-
encore mieux, merci encore car sans vous j'avancerai pas