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

Linux Discussion :

Awk - Nawk


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut Awk - Nawk
    Bonjour à tous,

    Voilà, j'ai un petit souci avec un script et je n'arrive pas à le résoudre.
    J'ai un fichier : fichier1 qui a cette structure là :

    ligne1col1 ligne1col2 ligne1col3
    ligne2col1 ligne2col2 ligne2col3
    ligne3col1 ligne3col2 ligne3col3

    Je voudrais traiter les lignes une par une et stocker dans des variables les valeurs.

    Pour la ligne 1 : $n1=ligne1col1 $n2=ligne1col2 $n3=ligne1col3 et ainsi de suite.

    J'ai donc tenté le code ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #!/bin/csh
     
    cd /usr/interfaces/entrante
     
    foreach line (`cat fichier1`)
     
                 set n1 = `cat fichier1 | nawk '{FS=" "; OFS=" "; print $1 }'`
                 set n2 = `cat fichier1 | nawk '{FS=" "; OFS=" "; print $2 }'`
                 set n3 = `cat fichier1 | nawk '{FS=" "; OFS=" "; print $3 }'`
     
    echo $n1 $n2 $n3
     
    end
    Mais ce n'est pas ça...
    Si quelqu'un voit comment je pourrais faire, cela m'aiderai.

    Par avance merci.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut
    Bonjour à tous,

    Je me permets de faire une petite relance sur ce sujet.
    La boucle serait-elle mal définie?

    Merci de votre aide.

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut [csh]
    as-tu une raison particulière d'employer le csh???

    en bash, je ferais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/bin/sh
    cd /usr/interfaces/entrante
    while read n1 n2 n3 restedelaligne
    do
      echo $n1 $n2 $n3
    done < fichier1

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut
    Merci de votre aide.

    L'utilisation du csh est justifiée par le fait que je reprends un script de plusieurs centaines de lignes et que ce script est écrit en csh......

    Donc je dois rester dans cette logique.

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    csh était à la mode dans les années 80, il y a des scripts comme bash qui sont beaucoup plus puissants.

    écrire un script un csh, c'est faire des workaround et s'arracher les cheveux ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    % cat fichier1
    1 2 3
    4 5 6
     
    % foreach line (`sed "s/ /-/g" fichier1`)
    ? set n1 = (`echo $line | cut -d- -f1`)
    ? set n2 = (`echo $line | cut -d- -f2`)
    ? set n3 = (`echo $line | cut -d- -f3`)
    ? echo $n1 $n2 $n3
    ? end
    1 2 3
    4 5 6

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 9
    Par défaut
    Je suis entièrement d'accord...mais bon je n'ai pas trop le choix.
    Merci pour le code.

  7. #7
    Invité de passage
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par défaut une reponse quelques annéesplus tard !
    cat fichier1 | awk '{ print $1 " " $2 " " $3 }'

Discussions similaires

  1. awk/nawk : utiliser RS avec plusieurs caractères
    Par gangsoleil dans le forum Solaris
    Réponses: 4
    Dernier message: 22/01/2015, 15h06
  2. Awk
    Par iamspacy dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 08/08/2007, 16h18
  3. Awk - Traiter chaque ligne du fichier passwd
    Par tony montana dans le forum Linux
    Réponses: 7
    Dernier message: 25/03/2004, 09h40
  4. Tableau en paramètre - Shell et Awk
    Par gc243 dans le forum Linux
    Réponses: 7
    Dernier message: 10/12/2003, 13h32
  5. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 18h26

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