Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix
Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2010, 09h27   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 30
Points : 10
Points : 10
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 :
1
2
vesion;date;application;employe;
bnn;bnbk;lkjhhj;pootit;otititi;
j'ai vraiment pas d'idée

Cordialement
izghad_06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 09h52   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 464
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 464
Points : 9 583
Points : 9 583
Bonjour,

Code :
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.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 10h00   #3
Membre Expert
 
Avatar de jabbounet
 
frederic frances
Inscription : juin 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : frederic frances
Âge : 36

Informations forums :
Inscription : juin 2009
Messages : 1 703
Points : 2 115
Points : 2 115
Code :
1
2
cat fichier.csv |awk -F";" '{print $10}'
ou
Code :
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 est un joyeux bordel improvisé ! Tous les mardis.
http://www.improetcompagnie.com/publ...ctacles-6.html

Citation:
Envoyé par Isaac Asimov
Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser
Pour les utilisateurs d'emacs:
http://www.emacswiki.org/

Attends de voir ce qui vas sortir de:
http://www.pushmid.com
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 10h52   #4
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 30
Points : 10
Points : 10
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
izghad_06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 11h19   #5
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 464
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 464
Points : 9 583
Points : 9 583
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 ?
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 11h23   #6
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 30
Points : 10
Points : 10
Par défaut Recherche mot

Ok merci pour les infos,

Crdt
izghad_06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 11h26   #7
Membre Expert
 
Avatar de jabbounet
 
frederic frances
Inscription : juin 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : frederic frances
Âge : 36

Informations forums :
Inscription : juin 2009
Messages : 1 703
Points : 2 115
Points : 2 115
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 :
sed -n '3p'  fichier.csv


Code pour afficher les lignes 3 à 5 :
sed -n '3,5p' fichier.csv

Code pour afficher les lignes 3 et 5 :
sed -n -e '3p' -e '5p' fichier.csv


Code pour afficher toutes les lignes à partir de la 3ème ligne :
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 :
sed '3,5d' fichier.csv

Code pour tout afficher sauf la dernière ligne :
sed '$d' fichier.csv
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis.
http://www.improetcompagnie.com/publ...ctacles-6.html

Citation:
Envoyé par Isaac Asimov
Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser
Pour les utilisateurs d'emacs:
http://www.emacswiki.org/

Attends de voir ce qui vas sortir de:
http://www.pushmid.com
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/12/2010, 12h44   #8
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

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

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Ton fichier est probablement au format dos s'il s'affiche "correctement" dans notepad. Converti-le au format unix (avec dos2unix par exemple).
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web