IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Sortie d'un fichier sans lignes vides ni commentaires


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Sortie d'un fichier sans lignes vides ni commentaires
    bonjour tout le monde
    la question que je cherche à résoudre est de faire sortir un fichier de configuration en éliminant les commentaire et les lignes vides
    j'ai donc fait la chose suivante en deux temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -v "^#" /usr/local/etc/clamd.conf > /home/paul/clamdconf.txt
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -v "^$" /home/paul/clamdconf.txt > /home/paul/clamdconf.txt
    j'ai tenté la méthode suivante qui ne donne pas de bon résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -v "^(#|$)" /usr/local/etc/clamd.conf > /home/paul/clamdconf.txt
    Comment construire une instruction avec une expression régulière reconnue par grep pour sortir donc depuis le premier fichier un fichier où toutes les lignes commentées et vides sont éliminées ?

    Merci d'avance de toute aide.
    paul
    Dernière modification par ggnore ; 28/11/2008 à 09h07.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par paulriluma Voir le message
    bonjour tout le monde
    la question que je cherche à résoudre est de faire sortir un fichier de configuration en éliminant les commentaire et les lignes vides
    j'ai donc fait la chose suivante en deux temps
    grep -v "^#" /usr/local/etc/clamd.conf > /home/paul/clamdconf.txt
    puis
    grep -v "^$" /home/paul/clamdconf.txt > /home/paul/clamdconf.txt

    j'ai tenté la méthode suivante qui ne donne pas de bon résultat :
    grep -v "^(#|$)" /usr/local/etc/clamd.conf > /home/paul/clamdconf.txt

    Comment construire une instruction avec une expression régulière reconnue par grep pour sortir donc depuis le premier fichier un fichier où toutes les lignes commentées et vides sont éliminées ?

    Merci d'avance de toute aide.
    paul
    essayez
    notez qu'une ligne avec uniquement des "blancs" (tab ou space) ne sera pas considérée comme vide…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grep "^[^#|^$|^ *$]"

  3. #3
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Pour retirer des lignes d'un fichier, la commande sed est la meilleure, à mon avis. Je ne suis pas très calé, mais après quelques essais j'ai de bons résultats avec la commande suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -ei '/^[ \t]*\(#\|$\)/d' fichier.txt
    Explications:

    • Le fichier sera directement modifié avec l'option -i.
    • Je cherche les lignes commençant par 0 ou plusieurs espaces ou tabs, suivis de # ou de rien du tout. Si c'est bon, je supprime la ligne. Donc en clair, je supprime:
      • les lignes vides,
      • les lignes contenant juste des espaces ou des tab,
      • les lignes commençant par 0 ou plusieurs espaces ou tab, suivis de #.


  4. #4
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Salut,

    Et comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed "/[^#.*|^$|^( |\t)*$]/d" <ton_fichier_entrée> > <ton_fichier_sortie>
    PS : à vérifier la 3ème partie de l'expression je suis pas sûr.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  5. #5
    Membre éclairé
    Avatar de MaliciaR
    Inscrit en
    Juillet 2008
    Messages
    513
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2008
    Messages : 513
    Par défaut
    Salut,

    Une question bête : qu'est-ce que le \t dans ces expressions : [ \t] et ( |\t) ?
    Le tact dans l'audace c'est de savoir jusqu'où on peut aller trop loin. Cocteau
    L'abjection la plus totale, ce n'est pas de trahir, c'est de ne jamais donner un commencement de réalité à ses rêves les plus fous. M. Moreau


    Les indispensables : Les règles, , FAQ et tutos avant de poster, et !
    Traduction de Linux Device Drivers 3 : venez participer
    membre de l'April - Promouvoir et défendre les logiciels libres

  6. #6
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Salut,

    Le \t correspond au caractère tabulation.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  7. #7
    Membre éclairé
    Avatar de MaliciaR
    Inscrit en
    Juillet 2008
    Messages
    513
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2008
    Messages : 513
    Par défaut
    Ah oki Merci!

    Parfois, je ferais mieux de mettre mon cerveau en mode ON
    Le tact dans l'audace c'est de savoir jusqu'où on peut aller trop loin. Cocteau
    L'abjection la plus totale, ce n'est pas de trahir, c'est de ne jamais donner un commencement de réalité à ses rêves les plus fous. M. Moreau


    Les indispensables : Les règles, , FAQ et tutos avant de poster, et !
    Traduction de Linux Device Drivers 3 : venez participer
    membre de l'April - Promouvoir et défendre les logiciels libres

Discussions similaires

  1. [XL-2007] Recopier une liste sans lignes vides
    Par filsdepub dans le forum Excel
    Réponses: 3
    Dernier message: 09/12/2014, 11h11
  2. formule pour recopier une liste sans ligne vide
    Par ANGLIQUESOIG dans le forum Excel
    Réponses: 2
    Dernier message: 14/03/2013, 11h13
  3. Parser un fichier par ligne vide
    Par wbulot dans le forum Langage
    Réponses: 2
    Dernier message: 12/12/2011, 11h31
  4. Ouvrir un fichier dans lignes vides
    Par Maxime082 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/05/2011, 18h59
  5. KSH: Supprimer des lignes vides (sans espaces ni tab) en fin de fichier text
    Par SmileAndFly dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 31/07/2008, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo