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 :

Grep avec nom de fichier variable en Bash


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur industriel
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur industriel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Grep avec nom de fichier variable en Bash
    Bonjour,

    Je suis novice, voici mon souci...

    Je travaille sur un script qui doit aller retrouver une occurrence dans un fichier.

    J'utilise ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MAC=`grep $IP$ /home/cluster/lol/ip.txt |awk -F ";" '{print $2}'`
    File=echo $MAC".txt"
    LastTimeout=`grep -m 100000000000000000000 'Timeout' /home/cluster/lol/details/${File} | tail -n 1`
    il est censé aller rechercher le dernier Timeout dans le fichier MAC.txt correspondant, or ce grep ne marche pas car je ne sais pas comment intégrer la variable File dans l'arboresence /home/cluster/lol/details/${File}

    J'ai essayé avec $File, $File$, *{File} sans résultat...

    Merci beaucoup

    Jérôme

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    aze=1
    zer=$aze"234"
    echo $zer
    1234
    Ta valorisation de $File semble incorrecte. Tu aurais pu afficher la valeur de $File pour débugger et comprendre ce qui ne va pas.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Citation Envoyé par jghislai Voir le message
    Bonjour,
    Je suis novice, voici mon souci...
    Je travaille sur un script qui doit aller retrouver une occurrence dans un fichier.
    J'utilise ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MAC=`grep $IP$ /home/cluster/lol/ip.txt |awk -F ";" '{print $2}'`
    File=echo $MAC".txt"
    LastTimeout=`grep -m 100000000000000000000 'Timeout' /home/cluster/lol/details/${File} | tail -n 1`
    il est censé aller rechercher le dernier Timeout dans le fichier MAC.txt correspondant, or ce grep ne marche pas car je ne sais pas comment intégrer la variable File dans l'arboresence /home/cluster/lol/details/${File}
    J'ai essayé avec $File, $File$, *{File} sans résultat...
    Merci beaucoup
    Jérôme
    Bonjour Jerome
    un petit exemple de votre fichier "ip.txt" ainsi qu'une correspondance associée dans "/home/cluster/lol/details/xxxxx" et bien sur le résultat que vous souhaitez avoir, devrait vous aider à avoir une réponse
    Signé : Capitaine Jean-Luc Picard

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    Bonjour,

    et grep | awk, c'est redondant : awk, bien sûr, traite les expressions rationnelles.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur industriel
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur industriel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai trouvé la solution, merci beaucoup

    Jérôme

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 068
    Points
    43 068
    Par défaut
    Bonjour,

    et grep | awk, c'est redondant : awk, bien sûr, traite les expressions rationnelles.
    grep ne traite pas les expressions rationnelles ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    grep ne traite pas les expressions rationnelles ?
    Si, bien sûr!

    Ce que dit N_BaH, c'est qu'il est inutile d'utiliser 2 process (grep ET awk), alors qu'on peut n'en utiliser qu'un seul (awk) car celui-ci sait AUSSI traiter les expressions régulières (aussi bien que grep).

  8. #8
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 068
    Points
    43 068
    Par défaut
    Quel est la différence entre grep et awk alors ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    grep affiche les lignes correspondant à un motif.
    awk aussi, mais peut effectuer des traitements beaucoup plus complexes; c'est un langage à part entière.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 068
    Points
    43 068
    Par défaut
    Merci Nbah,

    J'ai vu qu'effectivement awk contenait des structures de contrôle. J'ai vu que ça pouvait gérer des champs. J'ai déjà vu des scripts qui utilisaient les deux. Pour une question de simplicité ou d'affinité d’utilisation je pense.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  11. #11
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    J'ai vu que ça pouvait gérer des champs.
    c'est entre autre pour ça qu'il est utilisé comme un super cutter, en sous-évaluant sa puissance.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #12
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Citation Envoyé par chrtophe Voir le message
    Quel est la différence entre grep et awk alors ?
    Personnellement, je fais systématiquement le raisonnement suivant pour transformer un texte en texte.
    • Si c'est juste un filtre, utiliser grep.
    • Si c'est une modification texte brutale sans arithmétique ni champs, utiliser sed.
    • Dans les autres cas, utiliser awk.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Macro pour imprimer en pdf avec nom de fichiers variables
    Par YoTaPi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/07/2014, 18h50
  2. Exécuter macro avec nom du fichier ouvert : prob de variable
    Par supernati27 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/05/2011, 13h43
  3. [Débutant] boucle avec nom de fichier variable
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/05/2011, 18h53
  4. [XL-2003] Comment utiliser Windows(filename).activate? avec un nom de fichier variable
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2011, 16h32
  5. Nom de fichier variable.
    Par ::Fistons dans le forum Langage
    Réponses: 4
    Dernier message: 05/04/2006, 11h32

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