Commande awk sous unix
Fermé
Yann
-
25 sept. 2003 à 15:22
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 26 sept. 2003 à 11:32
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 26 sept. 2003 à 11:32
A voir également:
- Awk -f unix
- Invite de commande - Guide
- Commande terminal mac - Guide
- Commande chkdsk - Guide
- 'Ls' n’est pas reconnu en tant que commande interne - Forum Windows
- Diskpart commande - Guide
4 réponses
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
26 sept. 2003 à 03:10
26 sept. 2003 à 03:10
Bon finalement j'ai jeté un oeil a awk :o)
Avec un tableau, cela donne:
On commence par mettre i à zero,
Pour chaque passage (chaque ligne), on met $1 dans table[i] et on incremente i,
Apres le traitement de tout le fichier, on remet i à zero,
et on fini pas afficher toute les valeurs du tableau... <-- c'est la que tu peut manipuler tes donées par exemple!
@++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Avec un tableau, cela donne:
awk 'BEGIN { i = 0 }; { table[i] = $1 }; { i++ }; END { i=0 }; END { for ( i in table ) print table[i] } ' toto
On commence par mettre i à zero,
Pour chaque passage (chaque ligne), on met $1 dans table[i] et on incremente i,
Apres le traitement de tout le fichier, on remet i à zero,
et on fini pas afficher toute les valeurs du tableau... <-- c'est la que tu peut manipuler tes donées par exemple!
@++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
26 sept. 2003 à 02:19
26 sept. 2003 à 02:19
Salut Pitu, salut Yann,
Comme l'a dit Pitu, si tu ne sais pas combien de variables tu as dés le départ, ca va être coton... sauf en passant par des tableaux ! :o)
Voici un petit exemple. Comme je ne sais pas si tu veut que ce soit awk qui fasse tout ou bien si tu veut passer par un script, par fleme de faire les deux, et de me replonger dans awk, je te copie-colle un script bash.
Si tu veux tout faire avec awk, ce doit etre faisable puisqu'il gére les tableaux...
Tu as toute tes valeur dans le tableau $var[*] indicé de 0 à $count a toi d'en faire ce qu'il te plait :o)
@++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Comme l'a dit Pitu, si tu ne sais pas combien de variables tu as dés le départ, ca va être coton... sauf en passant par des tableaux ! :o)
Voici un petit exemple. Comme je ne sais pas si tu veut que ce soit awk qui fasse tout ou bien si tu veut passer par un script, par fleme de faire les deux, et de me replonger dans awk, je te copie-colle un script bash.
Si tu veux tout faire avec awk, ce doit etre faisable puisqu'il gére les tableaux...
[shell]# cat toto val1 val2 val3 [shell]# cat test_toto #!/bin/bash IFS=$'\n'; var=($(awk '{print $1}' toto)); #toutes les valeur sont mises dans le tableau $var count=$(wc -l toto | tr -s ' '| cut -f2 -d\ ); i=0; while [ $i -lt $count ]; do i=$(($i+1)); echo "var["$i"]="${var[$(($i-1))]}; done; #affichage. [shell]# chmod +x test_toto [shell]# ./test_toto var[1]=val1 var[2]=val2 var[3]=val3 [shell]#
Tu as toute tes valeur dans le tableau $var[*] indicé de 0 à $count a toi d'en faire ce qu'il te plait :o)
@++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Pitu
Messages postés
1440
Date d'inscription
jeudi 3 octobre 2002
Statut
Contributeur
Dernière intervention
5 janvier 2013
125
25 sept. 2003 à 19:35
25 sept. 2003 à 19:35
Bonjour Yann.
Normallement, ça ne devriat pas poser trop de pb de faire ce que tu souhaites.
J'ai fait quelques essais cet après-midi, et je n'ai pas tout à fait réussi, mais je ne désespère pas te trouver une solution.
Là, j'ai pas d'unix sous la main, mais je vais essayer de trouver un peu de temps demain pour t'aider.
Par contre, est-ce que tu connais à l'avance le nombre de variables que tu auras à affecter (et leur noms), ou est-ce que les noms de tes variables doivent être calculés automatiquement ? (si oui, je risque de coincer).
A +
(:•Þ Pitu
Normallement, ça ne devriat pas poser trop de pb de faire ce que tu souhaites.
J'ai fait quelques essais cet après-midi, et je n'ai pas tout à fait réussi, mais je ne désespère pas te trouver une solution.
Là, j'ai pas d'unix sous la main, mais je vais essayer de trouver un peu de temps demain pour t'aider.
Par contre, est-ce que tu connais à l'avance le nombre de variables que tu auras à affecter (et leur noms), ou est-ce que les noms de tes variables doivent être calculés automatiquement ? (si oui, je risque de coincer).
A +
(:•Þ Pitu
Sauvez mon hamac, Bouffez Castor !
Merci à tous...en effet, je ne sais pas combien g de variables...mais avec votre aide,
g trouvé mon bonheur !!!
Merci encore
@ plus
Yann
g trouvé mon bonheur !!!
Merci encore
@ plus
Yann
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
3 février 2022
426
26 sept. 2003 à 11:30
26 sept. 2003 à 11:30
De rien :o)
@++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
@++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
26 sept. 2003 à 08:02
J'avais dit que je regarderai aujourd'hui ...
Et toi, tu me casses la baraque. ;o)
Bon, ceci dit, j'aurais pas dit mieux.
a +
(:•Þ Pitu
26 sept. 2003 à 11:32
Désolé, :o)
Mais je m'ennuyait vraiment terriblement hier soir! J'ai pas résisté!
@++
Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !