Sed traiter seulement certaine ligne

Résolu
vieurou Messages postés 73 Statut Membre -  
vieurou Messages postés 73 Statut Membre -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Re-
    sed  '/\/\*/,/\*\//d' fichier
    ;-))
    0
  2. vieurou Messages postés 73 Statut Membre 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
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Suffit d'employer la négation, représentée par un point d'exclamation ( ! )
    sed  '/\/\*/,/\*\//! {traitement à effectuer}' fichier
    ;-))
    0
  4. vieurou Messages postés 73 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Il faut regrouper les commandes séparées par des points virgules (;) entre "accolades".
    0
  7. vieurou Messages postés 73 Statut Membre 2
     
    merci
    0
  8. vieurou Messages postés 73 Statut Membre 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
  9. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Tu veux faire quoi exactement ? Supprimer certaines lignes comprises dans un intervalle ?
    sed -e '/\/\*/,/\*\//! {/\<dcl_2d\|dcl\>/d}'
    ;-)
    0
  10. vieurou Messages postés 73 Statut Membre 2
     
    supprimer toutes les lignes se trouvant hors des commantaire /* */ comportant dcl_2d ou dcl
    0
  11. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    sed -e '/\/\*/,/\*\//! {/dcl[_2d]*/d}'
    ;-)
    0
  12. vieurou Messages postés 73 Statut Membre 2
     
    encore mieux, merci encore car sans vous j'avancerai pas
    0