Extraction / traitement champ 1 avec awk (ou autre)
Résolu/Fermé
snow_frog
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
-
Modifié par snow_frog le 8/03/2016 à 14:08
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 9 mars 2016 à 07:56
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 9 mars 2016 à 07:56
A voir également:
- Extraction / traitement champ 1 avec awk (ou autre)
- Extraction video youtube - Guide
- Traitement de texte gratuit - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
- Sélectionnez une extension d'un fichier qui s'ouvre avec un traitement de texte. - Guide
- Acquisition de données pci et contrôleur de traitement du signal ✓ - Forum Windows 10
6 réponses
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
Modifié par dubcek le 8/03/2016 à 16:53
Modifié par dubcek le 8/03/2016 à 16:53
hello
$ awk -F "[.-]" '{print $2 "; " $0}' fichier
j00; PLANTE1_TERRASSE_205_1o1-j00-s07.txt ;-1.8 ;3.24 ;0.13
j02; PLANTE1_TERRASSE_205_1o1-j02-s07.txt ;-3.2 ;0.56 ;0.11
j02_temp; PLANTE1_TERRASSE_205_1o1-j02_temp.txt ;15.8 ;22.1 ;20.1 ;0.8
j02_g20; PLANTE1_TERRASSE_205_1o1-j02_g20-s07.txt ;5.4 ;0.56 ;0.11
j02_g20_temp; PLANTE1_TERRASSE_205_1o1-j02_g20_temp.txt ;18.2 ;21.3 ;20.1 ;0.7
Salut,
$ cat plop
PLANTE1_TERRASSE_205_1o1-j00-s07.txt ;-1.8 ;3.24 ;0.13
PLANTE1_TERRASSE_205_1o1-j02-s07.txt ;-3.2 ;0.56 ;0.11
PLANTE1_TERRASSE_205_1o1-j02_temp.txt ;15.8 ;22.1 ;20.1 ;0.8
PLANTE1_TERRASSE_205_1o1-j02_g20-s07.txt ;5.4 ;0.56 ;0.11
PLANTE1_TERRASSE_205_1o1-j02_g20_temp.txt ;18.2 ;21.3 ;20.1 ;0.7
$ sed 's/^\([^-]*-\)\([^-.]*\)\([-.][^ ]*\) *\(.*\)/\2; \1\2\3\4/' plop
j00; PLANTE1_TERRASSE_205_1o1-j00-s07.txt;-1.8 ;3.24 ;0.13
j02; PLANTE1_TERRASSE_205_1o1-j02-s07.txt;-3.2 ;0.56 ;0.11
j02_temp; PLANTE1_TERRASSE_205_1o1-j02_temp.txt;15.8 ;22.1 ;20.1 ;0.8
j02_g20; PLANTE1_TERRASSE_205_1o1-j02_g20-s07.txt;5.4 ;0.56 ;0.11
j02_g20_temp; PLANTE1_TERRASSE_205_1o1-j02_g20_temp.txt;18.2 ;21.3 ;20.1 ;0.7
snow_frog
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
139
8 mars 2016 à 14:46
8 mars 2016 à 14:46
merci je vais regarder cette magnifique ligne sed !!
la syntaxte de sed m'étonnera toujours
la syntaxte de sed m'étonnera toujours
Pour t'aider à comprendre plus facilement cette syntaxe :
Les sous-expressions et références arrières
Les sous-expressions et références arrières
snow_frog
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
139
8 mars 2016 à 16:07
8 mars 2016 à 16:07
merci pour le lien
snow_frog
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
139
8 mars 2016 à 16:24
8 mars 2016 à 16:24
en recopiant ton fichier plop de windows ça foncitonne,
en repartant de mon fichier d'origine, qui n'a pas les espaces avant les ; ça ne fonctionne plus.... je me dit tu as utilisé l'esapce en tans que delimiteur de champs, et je vois dans ton lien que un esapce en sed "s'ecrit" /s mais je n'en voit pas dans ta commande....
donc qu'est ce qui fait qu'un fichier configurer comme ça:
donne un resultat different d'un fichier comme ça:
j'ai commencé à essayer de décortiquer ta commande, mais le premier gros paragraphe me pose encore des soucis
je suppose qu'il y a 4 blocs
le second
en repartant de mon fichier d'origine, qui n'a pas les espaces avant les ; ça ne fonctionne plus.... je me dit tu as utilisé l'esapce en tans que delimiteur de champs, et je vois dans ton lien que un esapce en sed "s'ecrit" /s mais je n'en voit pas dans ta commande....
donc qu'est ce qui fait qu'un fichier configurer comme ça:
PLANTE1_TERRASSE_205_1o1-j00-s07.txt ;-1.8 ;3.24 ;0.13
donne un resultat different d'un fichier comme ça:
PLANTE1_TERRASSE_205_1o1-j00-s07.txt;-1.8;3.24;0.13
j'ai commencé à essayer de décortiquer ta commande, mais le premier gros paragraphe me pose encore des soucis
sed 's/^\([^-]*-\)\([^-.]*\)\([-.][^;]*\)
je suppose qu'il y a 4 blocs
sed 's/^\
([^-]*-\)
([^-.]*\)
\([-.][^;]*\)
le second
*\(.*\)/\2; \1\2\3\4/'me laisse à penser que c'est pour la ré-écriture des champs du tableau.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
8 mars 2016 à 18:34
8 mars 2016 à 18:34
Salut,
Une version sed plus édulcorée :
Une version sed plus édulcorée :
$ sed 'h;s/^[^-]*-\([^-.]*\).*/\1; /;G;s/\n//' plop
j00; PLANTE1_TERRASSE_205_1o1-j00-s07.txt;-1.8 ;3.24 ;0.13
j02; PLANTE1_TERRASSE_205_1o1-j02-s07.txt;-3.2 ;0.56 ;0.11
j02_temp; PLANTE1_TERRASSE_205_1o1-j02_temp.txt;15.8 ;22.1 ;20.1 ;0.8
j02_g20; PLANTE1_TERRASSE_205_1o1-j02_g20-s07.txt;5.4 ;0.56 ;0.11
j02_g20_temp; PLANTE1_TERRASSE_205_1o1-j02_g20_temp.txt;18.2 ;21.3 ;20.1 ;0.7
snow_frog
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
139
9 mars 2016 à 07:56
9 mars 2016 à 07:56
merci à vous 3 pour les 3 réponse différentes!
j'avoue avoir une petite préférence pour celle de dubcek... vous m'en voudrez pas :/
j'avoue avoir une petite préférence pour celle de dubcek... vous m'en voudrez pas :/
8 mars 2016 à 17:34
Effectivement, c'est beaucoup moins alambiqué ;-)