C'est dans des cas comme ça que j'aurais aimé être programmeur ^^. L'informatique c'est vaste mon domaine c'est les serveurs et les postes clients (sous Microsoft).
Je résume ce que je souhaite :
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
jack j'ai essayé ce premier code :
cat 1419.dat | sed -e 's/^[^ ]* /G184/' -e 's/C=\(.\+\) U=.*/U=\1/' > 1419.nc
Voici le résultat :
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.
Pour les deux autres codes :
cat 1419.dat | sed -e 's/^[^ ]* [0-9]* /G184/' -e 's/C=\(.\+\) U=.*/U=\1/' > 1419.nc
cat 1419.dat | sed -e 's/^[^X]*/G184 /' -e 's/C=\(.\+\) U=.*/U=\1/' > 1419.nc
Malheureusement dans mon cas ils me serviront pas, je les ai essayé quand même mais sans résultat intéressant pour moi.
od -c 1419.dat | head -40
J'ai lancé cette commande mais elle me remonte rien à quoi doit-elle me servir ?
Le code suivant me donne ceci :
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 |
#! n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande
C:\USER\MOI.MONDOMAINE\desktop\test>set -x
La variable d'environnement -x n'est pas définie. File était inattendu.
Faut-il que j'installe un autre logiciel ?
Je sais que je me répete mais merci de prendre du temps pour m'aider sur mon problème.
Partager