Bonne idée, car tu vois qu'il y a eu pas mal d'interprétations différentes de ce que nous pensions que tu souhaitais...
Ah! Voilà une spec qu'elle est claire!!! Fallait commencer par ça! :PCitation:
Voici mon fichier 1419.dat (dans mon répertoire il y en aura des tas de fichier .dat)
EFIN100 0420 X=0.035 Y=-0.045 Z=104.184 C=-0.013 U=.2
EFIN100 0421 X=-0.008 Y=0 Z=104.115 C=-0.112 U=.2
EFIN100 0422 X=-0.012 Y=-0.004 Z=116.012 C=-0.043
EFIN1001 0421 X=-0.008 Y=0 Z=104.115 C=-0.112 U=.2
EFIN1002 0422 X=-0.012 Y=-0.004 Z=116.012 C=-0.043 U=.2
EEBIN1002 0422 X=-0.012 Y=-0.004 Z=116.012 C=-0.043 U=.2
EEBIN100 0422 X=-0.012 Y=-0.004 Z=116.012 C=-0.043 U=.2
Voici ce qu'il faudrait qu'il sorte 1419.nc (en tout les autres fichier .dat aussi transformé en .nc)
G184 0420 X=0.035 Y=-0.045 Z=104.184 U=-0.013
G184 0421 X=-0.008 Y=0 Z=104.115 U=-0.112
G184 0422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
G184 0421 X=-0.008 Y=0 Z=104.115 U=-0.112
G184 0422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
G184 0422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
G184 0422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
Du coup, c'est bien juste le premier mot qu'il faut supprimer avec ^[^ ]* par exemple.
C'est vraiment bizarre! Ah! les problèmes d'encodage...Citation:
jack j'ai essayé ce premier code :
Voici le résultat :Code:cat 1419.dat | sed -e 's/^[^ ]* /G184/' -e 's/C=\(.\+\) U=.*/U=\1/' > 1419.nc
EFIN100G1840420 X=0.035 Y=-0.045 Z=104.184 U=-0.013EFIN100G1840421 X=-0.008 Y=0 Z=104.115 U=-0.112EFIN100G1840422 X=-0.012 Y=-0.004 Z=116.012 C=-0.043EFIN1001G1840421 X=-0.008 Y=0 Z=104.115 U=-0.112EFIN1002G1840422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043EEBIN1002G1840422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043EEBIN100G1840422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
Si j'ajoute les sauts de lignes ça donne :
EFIN100G1840420 X=0.035 Y=-0.045 Z=104.184 U=-0.013
EFIN100G1840421 X=-0.008 Y=0 Z=104.115 U=-0.112
EFIN100G1840422 X=-0.012 Y=-0.004 Z=116.012 C=-0.043
EFIN1001G1840421 X=-0.008 Y=0 Z=104.115 U=-0.112
EFIN1002G1840422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
EEBIN1002G1840422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
EEBIN100G1840422 X=-0.012 Y=-0.004 Z=116.012 U=-0.043
La dernière partie est bonne mais pour les G184 pas du tout.
C'est pour voir le contenu et l'encodage précis de ton fichier qu'on te demande d'essayer tout un tas de commandes!
C'est un octal dump, en principe limité aux 40 premières lignes.Citation:
J'ai lancé cette commande mais elle me remonte rien à quoi doit-elle me servir ?Code:od -c 1419.dat | head -40
Est-ce que juste od -c 1419.dat donne quelque chose (dans une fenêtre cygwin (voir plus loin)) ?
euh... j'ai un doute là... la fenêtre dans laquelle est écrit le prompt "C:\USER\MOI.MONDOMAINE\desktop\test>", c'est bien un terminal/shell cygwin?Citation:
Le code suivant me donne ceci :
#! n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandeCode:
1
2
3
4
5
6
7
8 #!/bin/sh # ceci est la première ligne du script set -x for file in *.dat ; do echo "Converting file ${file}" ofile=$(basename $file ".dat").nc sed -e 's/^[^X]*/G184 /' -e 's/C=\(.\+\) U=.*/U=\1/' "${file}" > "${ofile}" break # pour sortir après la conversion du 1er fichier done
C:\USER\MOI.MONDOMAINE\desktop\test>set -x
La variable d'environnement -x n'est pas définie. File était inattendu.
Rassure-moi: c'est pas une fenêtre de commande DOS (avec un titre genre C:\WINNT\system32\cmd.exe) ???
Pas pour l'instant. Je n'ai pas été assez clair. Il ne s'agissait pas de taper les commandes à la main, mais de mettre le contenu du code suivant dans un fichier "mon_test.sh", puis de le rendre exécutable en tapant un chmod +x mon_test.sh (dans un shell cygwin!) et enfin de lancer l'exécution dudit fichier en tapant: ./mon_test.sh (toujours dans un shell cygwin...)Citation:
Faut-il que j'installe un autre logiciel ?
Code:
1
2
3
4
5
6
7
8 #!/bin/sh # ceci est la première ligne du script set -x for file in *.dat ; do echo "Converting file ${file}" ofile=$(basename $file ".dat").nc sed -e 's/^[^ ]* /G184 /' -e 's/C=\(.\+\) U=.*/U=\1/' "${file}" > "${ofile}" break # pour sortir après la conversion du 1er fichier done