#1821 25.03.2008 12:37:19

Sephi
Webmaster
30.03.2005
6,082

J'aimerais savoir...

Comment ça ? Tes différents enregistrements sont séparés par quoi alors ? Tu peux montrer un extrait de tes données histoire d'avoir une idée ?

Hors ligne

#1822 25.03.2008 12:43:27

Akrilikoner
Membre
19.08.2006
127

J'aimerais savoir...

Le post à 13h37 de Sephi. La classe.


Modérateur de Marmot Project !

L'site oùkonfédè kilomètres avec sa souris.

Hors ligne

#1823 25.03.2008 13:59:02

lilly
Père ver
30.11.2006
1,887

J'aimerais savoir...

il est né pour ça ! (ou elle)
je suis pas homo, mais une personne qui sait se servir de son pc comme ça doit bien savoir faire autre chose....... ?


A force de patience et de saindoux, l'éléphant sodomise le pou.

i'am a sepman

Hors ligne

#1824 25.03.2008 14:17:31

Ced
Ver de Éire
Lieu Dublin
19.10.2006
8,692

J'aimerais savoir...

Salut Sephi,

Ca ressemble à ça (exemple sur 4 lignes):

S*****             10153 0   1.86N 12 342.82W 697160.85876490.7  228.9177214611
S*****             10253 0    .87N 12 342.79W 697162.65876460.3   228.7177214623
S*****             103525959.89N 12 342.76W 697164.45876429.9  228.6177214636
S*****             104525958.91N 12 342.76W 697165.75876399.6  228.6177214648

C'est ce qu'on appelle des données de navigation.

Chaque colonne est sensée être alignée, de la façon suivante:

* Les premiers charactères (après le 'S') correspondent à nom (codé, mais que je décode sans aucun problème)
* Les trois premiers chiffres sont le numéro d'un point de référence
* Après, il y a des données de latitude (jusqu'au N) puis de longitude (jusqu'au W) puis les mêmes données translatées en UTM numérique codées en projection
* Et enfin, après le dernier blanc sont des données de bathymétrie (dont je n'ai pas besoin, car elles sont en fait non correctées en valeur de marée).

Comme tu peux le voir, certaines lignes ont des blancs en longitude et latitude, qui correspondent en fait à des zéros. Ce qui m'embête, c'est que j'ai besoin de chacune de ces lignes, afin de ploter le trajet de mon bateau. Je dois donc traiter par programmation les blancs en les remplaçant par des zéros.

Donc j'aimerais savoir si je peux le faire, avec 'awk', afin d'extraire ces lignes, générés en fichier correcté et enfin réinsérer dans un nouveau fichier final. Les deux dernières étapes sont faciles à faire, mais la première me pause un problème: awk fonctionne très bien en colonne, mais apparemment pas en ligne. hmm

Merci d'avance! wink

PS.: je n'ai bien pas que quatre lignes, mais des millions! smile


'Ils ne sont grands que parce que nous sommes à genoux.' (Etienne de La Boétie)
                        'Soyez réaliste, demandez l'impossible' (Ernesto Guevara)
'Bien heureux les langues de p****.'(Jésus - Le Troisième Evangile selon St Emilion, verseZ 8.6)
Smile, you're on CCTV!

Hors ligne

#1825 25.03.2008 17:59:25

Sephi
Webmaster
30.03.2005
6,082

J'aimerais savoir...

Je comprends pas ce que tu veux dire par "awk fonctionne très bien en colonne, mais apparemment pas en ligne" ? En fait je vois même pas quel est le problème ? awk permet justement de traiter les colonnes de chacun de tes enregistrements.
Juste un truc, je sais pas si c'est "normal" mais j'ai remarqué que sur les lignes 3 et 4 il n'y a pas de séparateur entre la 2ème et la 3ème colonne ? Si c'est ça le problème, t'es pas sorti de l'auberge à mon avis. ^^

Hors ligne

#1826 25.03.2008 18:11:06

Ced
Ver de Éire
Lieu Dublin
19.10.2006
8,692

J'aimerais savoir...

Oui, mais moi, je veux remplacer les espaces manquant par des 0 et je n'ai pas envie de me taper tout à la main. sad

Sinon, pour les séparateurs en 4ème et 5ème colonnes, ce n'est pas trop grave... GMT (Global Mapping Tool, un logiciel de plot de données comme cela) est sensé dealer avec un petit 'if, then, else'...
Enfin, j'espère!... autrement, je vais franchement rester à l'auberge pour un (graaaaaaand) moment, c'est sur!!! Mais je devrais pouvoir m'en sortir avec les autres données autrement.

Merci beaucoup en tout cas! wink

Dernière modification par Ced (25.03.2008 18:11:23)


'Ils ne sont grands que parce que nous sommes à genoux.' (Etienne de La Boétie)
                        'Soyez réaliste, demandez l'impossible' (Ernesto Guevara)
'Bien heureux les langues de p****.'(Jésus - Le Troisième Evangile selon St Emilion, verseZ 8.6)
Smile, you're on CCTV!

Hors ligne

#1827 25.03.2008 18:20:19

Sephi
Webmaster
30.03.2005
6,082

J'aimerais savoir...

Le problème c'est que si tu as un espace manquant, awk ne pourra plus séparer tes colonnes correctement (il peut pas "deviner" où séparer), à moins que tu puisses lui préciser une largeur de colonne mais ça dépasse mes connaissances de cet outil... désolé !

Hors ligne

#1828 25.03.2008 18:40:18

Ced
Ver de Éire
Lieu Dublin
19.10.2006
8,692

J'aimerais savoir...

Mouaip...
Je crois que je vais devoir écrire un script pour refaire un fichier de données alors. Ils sont jamais fichus de donner des fichiers propres, pffffff... Ca en devient lassant!

Bref, pour ce qui est de la commande awk, je crois que je peux séparer en précisant une largeur, si tout est homogène... Je dois regarder en faisant un man, mais je pense que c'est possible... Je te redirais si je trouve la solution.

Merci beaucoup en tout cas! smile


'Ils ne sont grands que parce que nous sommes à genoux.' (Etienne de La Boétie)
                        'Soyez réaliste, demandez l'impossible' (Ernesto Guevara)
'Bien heureux les langues de p****.'(Jésus - Le Troisième Evangile selon St Emilion, verseZ 8.6)
Smile, you're on CCTV!

Hors ligne

#1829 25.03.2008 19:10:52

pancakes
Lombrik Pyrotechnik
28.07.2006
2,406

J'aimerais savoir...

Vous êtes conscients que votre discussion est INCOMPREHENSIBLE pour le commun des mortels? big_smile


C'est drôle les cons, ça repose, c'est comme le feuillage au milieu des roses...

Hors ligne

#1830 25.03.2008 19:12:57

garu
Membre
15.10.2006
1,968

J'aimerais savoir...

merci pancakes smile

Hors ligne

#1831 25.03.2008 19:25:03

pd le worm
Lombric chauvin
21.05.2005
4,714

J'aimerais savoir...

C'est ptêt' incompréhensible, mais c'est tout aussi chiant que vos discussions sur les cheveux longs.

Hors ligne

#1832 25.03.2008 19:29:45

Sephi
Webmaster
30.03.2005
6,082

J'aimerais savoir...

Hahahahahahaha big_smile

Hors ligne

#1833 25.03.2008 19:31:22

garu
Membre
15.10.2006
1,968

J'aimerais savoir...

*fille de joie* je peux que plussoyer aussi la '_'

Hors ligne

#1834 25.03.2008 19:32:44

Ced
Ver de Éire
Lieu Dublin
19.10.2006
8,692

J'aimerais savoir...

Bah nan, pas du tout... Awk, c'est une commande qui fonctionne sous linux et qui permet de prendre des colonnes de caractères et de les placer dans un autre fichier, en les modelant comme tu veux.

Si par exemple ce sont des nombres, tu peux les multiplier, les diviser, leur mettre des exponentiels, etc... Ca, c'est une étape que j'ai fait aujourd'hui par exemple, parce que j'avais une liste de données brutes d'environ 2 000 lignes (c'est pas beaucoup 2000 lignes) remplies de chiffre à traiter (le programme tourne encore, d'ailleurs!) pour faire une modélisation de paléo-températures dans des roches du Carbonifère.

Si ce sont des lettres, alors tu peux les coder de x lettres d'ordre inférieur (si x = 3, D deviendra B par exemple) ou supérieur (J deviendra M). Tu peux aussi leur donner des valeurs numériques, en apparance aléatoires, mais qui peuvent être basés sur des lois en équation.. Ou tu peux translater ton alphabet en alphabet grec, russe ou modeler des alphabets imaginatifs, etc... Ce peut-être très pratique si tu as affaire à un fichier de données confidentiels, et que tu veux transférer en code sans que cela soit lisible par des tiercés (je crois que c'est comme ça qu'on appelle ça).

Et c'est toujours très pratique car la plupart des fichiers de données ne sont jamais créés avec des tableurs (type excel), simplement parce que la plupart des tableurs ne sont pas adaptés aux gros systèmes de calculs car trop limités... Tu ne peux donc pas individualiser des colonnes comme tu veux. Et comme cela, tu peux aussi faire d'énormes calculs de façon indépendante sans bouffer trop de ressources...

Et moi, je ne peux pas changer des couillons d'espaces par des 0, et je vais passer des nuits à devoir le faire à la main. sad

PS.: surtout quand on a les cheveux courts!...

Dernière modification par Ced (25.03.2008 19:35:06)


'Ils ne sont grands que parce que nous sommes à genoux.' (Etienne de La Boétie)
                        'Soyez réaliste, demandez l'impossible' (Ernesto Guevara)
'Bien heureux les langues de p****.'(Jésus - Le Troisième Evangile selon St Emilion, verseZ 8.6)
Smile, you're on CCTV!

Hors ligne

#1835 26.03.2008 20:15:27

Atark`l
Membre
15.04.2007
105

J'aimerais savoir...

man sed ?
sed [2addr]s/regular expression/replacement/flags

ou plus simple si tu veux remplacer tous les espace par des zéros:
tr ' ' '0'

je pense que ça peut faire l'affaire.


"Un ordinateur sans windows, c'est comme un gâteau au chocolat sans moutarde"

Hors ligne

#1836 26.03.2008 20:22:11

Sephi
Webmaster
30.03.2005
6,082

J'aimerais savoir...

Le problème c'est qu'il y a même pas d'espace... et il faut pas remplacer tous les espaces par des 0 au risque de rentre le fichier intraitable ensuite...

Hors ligne

#1837 26.03.2008 20:53:53

Atark`l
Membre
15.04.2007
105

J'aimerais savoir...

Je pense que sed peut faire l'affaire, sinon dans awk il y a la fonction sub ou gsub qui doit permettre de faire des remplacements.


"Un ordinateur sans windows, c'est comme un gâteau au chocolat sans moutarde"

Hors ligne

#1838 26.03.2008 21:12:34

Titus
Lombric à l'est
26.08.2006
3,110

J'aimerais savoir...

À propos d'espace, existe-t-il un logiciel/astuce qui permettrait de remplacer les espaces par des "_" dans les nom de fichier d'un grand nombre d'élément. (dossier de photos par exemple)

Hors ligne

#1839 26.03.2008 21:15:06

Sephi
Webmaster
30.03.2005
6,082

J'aimerais savoir...

Sur nux tu peux le faire très facilement avec Bash. big_smile

Hors ligne

#1840 26.03.2008 21:46:35

Titus
Lombric à l'est
26.08.2006
3,110

J'aimerais savoir...

Effectivement c'est pas mal foutu Bash, j'pense que changer les caractères accentué doit être possible aussi, j'regarderai à l'occas'.
Merci Sephi

Hors ligne

Pied de page du Forum