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 POSIX Discussion :

Recherche chaine de caractère dans un fichier


Sujet :

Shell et commandes POSIX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Recherche chaine de caractère dans un fichier
    Bonjour à tous
    J'ai un fichier csv séparateur ';' j'aimerais rechercher le 10 mot de la deuxième ligne
    Voici l'exemple du fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vesion;date;application;employe;
    bnn;bnbk;lkjhhj;pootit;otititi;
    j'ai vraiment pas d'idée

    Cordialement

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    head -2 mon_fichier | tail -1 | awk -F';' '{ print $10 }'
    Afficher les 2 premieres lignes, puis ne garder que la seconde, puis afficher le 10eme champs, avec comme separateur ;

    Ce n'est pas du tout optimise, mais ca doit fonctionner, aux erreurs de typo pres.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cat fichier.csv |awk -F";" '{print $10}'
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk -F";" '{print $10}' fichier.csv
    awk est un utilitaire puissant pour analyser les fichier et en extraire des données, le connaitre peut te permettre de solutionner pas mal de problèmes lors de l'écriture de scripts.

    Tu trouvera un tutoriel ici
    http://nyal.developpez.com/tutoriel/gawk/index.php

    l'option -F ";" indique que le spéarateur est le ;
    '{ print $10 }' indique que l'on veut afficher le 10ème mot.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Recherche mot
    Merci pour ta réactivité
    Je pense que j'ai un problème avec mon fichier quand je fais un
    head -2 nom_fichier |tail -1 elle me renvoi les deux lignes
    pourtant quand j'ouvre mon fichier avec un notepad; il est bien sur deux lignes distinctes.

    Cordialement

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Si tu fais un cat de ton fichier, vois-tu bien deux lignes ?
    Est-ce que tail -1 de ton fichier ne t'affiche bien que la derniere ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Recherche mot
    Ok merci pour les infos,

    Crdt

  7. #7
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    petit complément d'information.

    Pour afficher une ligne quelconque d'un fichier tu peux aussi utiliser sed.
    sed te permettra aussi d'extraire plusieurs lignes n'importe ou dans un fichier.

    Exemples:

    Code pour afficher la 3ème ligne : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '3p'  fichier.csv


    Code pour afficher les lignes 3 à 5 : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '3,5p' fichier.csv

    Code pour afficher les lignes 3 et 5 : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n -e '3p' -e '5p' fichier.csv


    Code pour afficher toutes les lignes à partir de la 3ème ligne : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '3,$p' fichier.csv

    l'option -n indique a sed de n'afficher que les résultats trouvé.
    l'option -e souvent implicite (quand il n'y a q'une seule commande) indique la commande sed à exécuter.
    l'opérateur 'p' dans la commande indique que tu souhaite faire un affichage.

    Si tu souhaite exclure des lignes, il faut utiliser l'opérateur d à la place de l'opérateur p et retirer l'option -n

    Exemple:
    Code pour tout afficher sauf les lignes 3 à 5 : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '3,5d' fichier.csv

    Code pour tout afficher sauf la dernière ligne : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '$d' fichier.csv
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  8. #8
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Ton fichier est probablement au format dos s'il s'affiche "correctement" dans notepad. Converti-le au format unix (avec dos2unix par exemple).

Discussions similaires

  1. Recherche chaine de caractère dans un fichier txt
    Par 4rocky4 dans le forum Débuter
    Réponses: 11
    Dernier message: 31/12/2010, 17h29
  2. Réponses: 9
    Dernier message: 07/09/2006, 13h47
  3. Réponses: 3
    Dernier message: 25/07/2006, 08h40
  4. [VBS] Recherche chaine de caractères dans un fichier
    Par parker13 dans le forum VBScript
    Réponses: 1
    Dernier message: 08/07/2006, 00h22
  5. [VB]Recherche d'une chaine de caractère dans un fichier
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 26
    Dernier message: 16/02/2006, 09h10

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