Script ksh pour extraire lignes particulieres d'un fichier txt
Résolu/Fermé
ugbsaintlouis
Messages postés
8
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
23 février 2013
-
21 févr. 2013 à 20:29
ugbsaintlouis Messages postés 8 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 23 février 2013 - 23 févr. 2013 à 12:15
ugbsaintlouis Messages postés 8 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 23 février 2013 - 23 févr. 2013 à 12:15
A voir également:
- Script ksh pour extraire lignes particulieres d'un fichier txt
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Script vidéo youtube - Guide
5 réponses
Utilisateur anonyme
21 févr. 2013 à 20:40
21 févr. 2013 à 20:40
salut,
en awk, ce sera plus efficace, plus beau, plus mieux
comme ça aussi
en awk, ce sera plus efficace, plus beau, plus mieux
$ cat script.awk #!/usr/bin/awk -f ($2 < 64.000 && $3 > -33.0000) $ ./script.awk fichier.data 1 63.1493 -31.5184 163.59 163.01 231.82 244.82 237.46 228.75 226.33 224.79 2 63.8144 -29.6782 162.06 161.74 228.95 245.02 239.07 229.79 227.04 225.22
comme ça aussi
awk '($2 < 64.000 && $3 > -33.0000)' fichier.data
ugbsaintlouis
Messages postés
8
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
23 février 2013
22 févr. 2013 à 00:58
22 févr. 2013 à 00:58
Merci beaucoup qqchquicommenceparQ!!!
pourriez -vous m'ajouter une ligne qui permettrai de recuperer ces données dans un fichier .data au lieu de les affichers dans le shell?
Merci d'avance.
pourriez -vous m'ajouter une ligne qui permettrai de recuperer ces données dans un fichier .data au lieu de les affichers dans le shell?
Merci d'avance.
ugbsaintlouis
Messages postés
8
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
23 février 2013
22 févr. 2013 à 02:21
22 févr. 2013 à 02:21
Mis à jour
qqchquicommenceparQ
j'ai résolu la récupération des données dans un fichier .txt par :
awk '{($2 < 64.000 && $3 > -33.0000)}{print > f".txt"}' fic1.txt
En fait mon critère de sélection est que $2 soit dans l'intervalle [60,64]
et $3 soit dans l'intervalle [-33,-30]
j'ai essayé cette ligne de commande:
awk '{($2 == 60, $2 == 64 && $3 == -33, $3 == -30)}{print > f".txt"}' fic1.txt
il y erreur : awk: line 1: syntax error at or near }
MERCI d'avance!!!
qqchquicommenceparQ
j'ai résolu la récupération des données dans un fichier .txt par :
awk '{($2 < 64.000 && $3 > -33.0000)}{print > f".txt"}' fic1.txt
En fait mon critère de sélection est que $2 soit dans l'intervalle [60,64]
et $3 soit dans l'intervalle [-33,-30]
j'ai essayé cette ligne de commande:
awk '{($2 == 60, $2 == 64 && $3 == -33, $3 == -30)}{print > f".txt"}' fic1.txt
il y erreur : awk: line 1: syntax error at or near }
MERCI d'avance!!!
Utilisateur anonyme
22 févr. 2013 à 03:00
22 févr. 2013 à 03:00
awk '( (60.000<$2 && $2<64.000) && (-33.0000<$3 && $3<-30.0000) )' fichier.data > fichier.resultat
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ugbsaintlouis
Messages postés
8
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
23 février 2013
23 févr. 2013 à 02:02
23 févr. 2013 à 02:02
Merci beaucoup qqchquicommenceparQ pour votre spontanéité.
cette ligne de commande crée un fichier.résultat vide!!!
Je crois que le awk n'est pas tout-à fait exécuter. Comment peut-on remédier?
cette ligne de commande crée un fichier.résultat vide!!!
Je crois que le awk n'est pas tout-à fait exécuter. Comment peut-on remédier?
ugbsaintlouis
Messages postés
8
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
23 février 2013
Modifié par ugbsaintlouis le 23/02/2013 à 11:52
Modifié par ugbsaintlouis le 23/02/2013 à 11:52
Non le fichier de données n'a pas changé,
les données fournies ne sont qu'une illustration de la structure du fichier.
Je travail sur un fichier de 23 490 lignes. je crois que c'est le awk qui n'est pas exécuté
car cette commande crée un fichier résultat vide.
les données fournies ne sont qu'une illustration de la structure du fichier.
Je travail sur un fichier de 23 490 lignes. je crois que c'est le awk qui n'est pas exécuté
car cette commande crée un fichier résultat vide.
ugbsaintlouis
Messages postés
8
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
23 février 2013
23 févr. 2013 à 11:59
23 févr. 2013 à 11:59
Pour étayer mon argumentaire
En exécutant ce code :
awk '($2 < 64.000 && $3 > -33.0000)' fic.txt > f1.txt
je dispose à la fin de f1.txt avec les données sélectionnées, soit 16 494 lignes sur 23 490.
En exécutant ce code :
awk '($2 < 64.000 && $3 > -33.0000)' fic.txt > f1.txt
je dispose à la fin de f1.txt avec les données sélectionnées, soit 16 494 lignes sur 23 490.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
23 févr. 2013 à 12:13
23 févr. 2013 à 12:13
Salut,
Et donc ? Où est le souci ? Ce n'est pas ce que tu veux ?
Et donc ? Où est le souci ? Ce n'est pas ce que tu veux ?
ugbsaintlouis
Messages postés
8
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
23 février 2013
Modifié par ugbsaintlouis le 23/02/2013 à 12:23
Modifié par ugbsaintlouis le 23/02/2013 à 12:23
Merci qqchquicommenceparQ !!!
zipe31 le souci était que pour ce code :
awk '( (60.000<$2 && $2<64.000) && (-33.0000<$3 && $3<-30.0000) )' fic.data > fic.resultat
je trouve un fichier résultat vide.
Je viens de comprendre le pourquoi, car aucune ligne ne satisfait ces conditions.
Merci qqchquicommenceparQ et zipe31 !!!
zipe31 le souci était que pour ce code :
awk '( (60.000<$2 && $2<64.000) && (-33.0000<$3 && $3<-30.0000) )' fic.data > fic.resultat
je trouve un fichier résultat vide.
Je viens de comprendre le pourquoi, car aucune ligne ne satisfait ces conditions.
Merci qqchquicommenceparQ et zipe31 !!!