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