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 :

awk, variable d'environnement et redirection


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien Layout
    Inscrit en
    Août 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Layout

    Informations forums :
    Inscription : Août 2015
    Messages : 275
    Par défaut awk, variable d'environnement et redirection
    Bonjour je souheterais comprendre le fonctionnement de cette ligne de commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -f ${TOOLS_BIN}/myawk.awk  $LOCALTEGROOTDIR/Configs/$tegname.config  > $tmpconffile
    $TOOLS_BIN = path ou se trouve le fichier .awk

    myawk.awk:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
     for(i=1;i<=NF;i++){
     printf("%s;",$i);
     }
     printf("\n");
    }
    Pour terminer redirection du contenu du fichier $tegname.config dans le fichier temporaire $tmpconffile

    La grosse intérogation est au niveau du fichier myawk.awk je ne comprends pas a quoi sert cette boucle et la portabilité des variables NF par exemple d'ou vient elle ?

    Merci pour vos retours !

  2. #2
    Membre éclairé
    Homme Profil pro
    Technicien Layout
    Inscrit en
    Août 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Layout

    Informations forums :
    Inscription : Août 2015
    Messages : 275
    Par défaut
    Du coup en meme temps j'ai fais une recherche sur le NF de la boucle for et je trouves ca :

    NF = nombre de champs de l'enregistrement courant

    ?

  3. #3
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Cela sert simplement à faire passer un fichier du type :

    arg10 arg11 arg12 arg13
    arg20 arg21 arg22 arg23


    à

    arg10
    arg11
    arg12
    arg13

    arg20
    arg21
    arg22
    arg23

    Dans le quel but ? C'est une bonne question :-)

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien Layout
    Inscrit en
    Août 2015
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Layout

    Informations forums :
    Inscription : Août 2015
    Messages : 275
    Par défaut
    Merci pour ta réponse, si j'ai bien compris tout ce qui se trouve dans le fichier $tegname.config sera positionner a la verticale avec le format que tu indiques dans le fichier $tmpconffile ???

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    My bad !

    C'est un printf et pas un print
    Cela devrait copier ligne par ligne et envoyer dans le fichier temporaire.
    C'est encore plus mystérieux ...

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Apparemment ce script ajoute un point-virgule à la fin de chaque champ pour toutes les lignes.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Apparemment ce script ajoute un point-virgule à la fin de chaque champ pour toutes les lignes.
    c'est ça, une sorte de join(), donc en gros ça remplace tous les -groupes d'- espaces dans le fichier d'origine par des point-virgules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    awk '{for(i=1;i<=NF;i++){printf("%s;",$i);}printf("\n");}' <<< "bouzin       coincoin machin               truc bidule"
    bouzin;coincoin;machin;truc;bidule;

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

Discussions similaires

  1. [awk] Utilisation d'une variable d'environnement
    Par tiresias54 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 06/08/2013, 08h26
  2. [langage] Création de variable d'environnements
    Par Smaugg dans le forum Langage
    Réponses: 20
    Dernier message: 26/04/2004, 09h32
  3. [BES] Création d'une variable d'environnement
    Par NGI80 dans le forum Autres
    Réponses: 2
    Dernier message: 17/10/2002, 07h31
  4. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 15h21
  5. Réponses: 4
    Dernier message: 18/07/2002, 13h32

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