Awk moulinette
matthieu
-
matthieu -
matthieu -
Bonjour,
je reviens ici pour une aide sur awk (encore! mon niveau awk reste desperement bas)
je dois convertir un fichier de trait de cote au format .csv dans un autre format (csv toujours). En fait je dois reecrire la premiere ligne apres "X, Nodes" a la fin du paquet (X donne le nombre d'elements qui suit dans le paquet, mais pour fermer le trait de cote, je dois lui donner la premiere coordonnees pour que la boucle soit bouclee). Je dois aussi incremente de un le nombre d'element en entete du paquet. Ce fichier provient d'une extraction de shp vers .csv, mais je dois encore le modifier. Je sais qu'il y a beaucoup de awk guru ici ! j'espere leur aide ; )
par exemple :
4, Nodes
-1.5684410000,43.4849130000
-1.5684920000,43.4849980000
-1.5685420000,43.4850130000
-1.5685910000,43.4850300000
2, Nodes
-1.5627750000,43.4848800000
-1.5628250000,43.4848800000
8, Nodes
...
doit devenir :
5, 0 #attention le nb d'elements est aussi incremente du coup!
-1.5684410000,43.4849130000
-1.5684920000,43.4849980000
-1.5685420000,43.4850130000
-1.5685910000,43.4850300000
-1.5684410000,43.4849130000
3, 0
-1.5627750000,43.4848800000
-1.5628250000,43.4848800000
-1.5627750000,43.4848800000
8, 0
...
je reviens ici pour une aide sur awk (encore! mon niveau awk reste desperement bas)
je dois convertir un fichier de trait de cote au format .csv dans un autre format (csv toujours). En fait je dois reecrire la premiere ligne apres "X, Nodes" a la fin du paquet (X donne le nombre d'elements qui suit dans le paquet, mais pour fermer le trait de cote, je dois lui donner la premiere coordonnees pour que la boucle soit bouclee). Je dois aussi incremente de un le nombre d'element en entete du paquet. Ce fichier provient d'une extraction de shp vers .csv, mais je dois encore le modifier. Je sais qu'il y a beaucoup de awk guru ici ! j'espere leur aide ; )
par exemple :
4, Nodes
-1.5684410000,43.4849130000
-1.5684920000,43.4849980000
-1.5685420000,43.4850130000
-1.5685910000,43.4850300000
2, Nodes
-1.5627750000,43.4848800000
-1.5628250000,43.4848800000
8, Nodes
...
doit devenir :
5, 0 #attention le nb d'elements est aussi incremente du coup!
-1.5684410000,43.4849130000
-1.5684920000,43.4849980000
-1.5685420000,43.4850130000
-1.5685910000,43.4850300000
-1.5684410000,43.4849130000
3, 0
-1.5627750000,43.4848800000
-1.5628250000,43.4848800000
-1.5627750000,43.4848800000
8, 0
...
2 réponses
hello
quelque chose comme ça ?
quelque chose comme ça ?
$ cat a2 4, Nodes -1.5684410000,43.4849130000 -1.5684920000,43.4849980000 -1.5685420000,43.4850130000 -1.5685910000,43.4850300000 2, Nodes -1.5627750000,43.4848800000 -1.5628250000,43.4848800000 8, Nodes $ $ awk -F, '/Nodes/ {if(length(x))print x;print $1+1",0";if(!getline)exit;x=$0;print x;next} ; {print $0}' < a2 5,0 -1.5684410000,43.4849130000 -1.5684920000,43.4849980000 -1.5685420000,43.4850130000 -1.5685910000,43.4850300000 -1.5684410000,43.4849130000 3,0 -1.5627750000,43.4848800000 -1.5628250000,43.4848800000 -1.5627750000,43.4848800000 9,0 $