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
Configuration: Linux
Firefox 2.0.0.6

11 réponses

  1. 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 ?
    1. Modérateur
      Suffit d'employer la négation, représentée par un point d'exclamation ( ! )
      sed  '/\/\*/,/\*\//! {traitement à effectuer}' fichier
      ;-))
      1. 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
        1. Modérateur
          Il faut regrouper les commandes séparées par des points virgules (;) entre "accolades".
          1. encore un petit truc
            je lorsque j'appelle sed -e '/\/\*/,/\*\//! /\<dcl_2d\|dcl\>/d' celui si me retourne une erreur , comment contourner cela
            1. Modérateur
              Tu veux faire quoi exactement ? Supprimer certaines lignes comprises dans un intervalle ?
              sed -e '/\/\*/,/\*\//! {/\<dcl_2d\|dcl\>/d}'
              ;-)
              1. supprimer toutes les lignes se trouvant hors des commantaire /* */ comportant dcl_2d ou dcl