[Batch] Transformation des fichiers

Transformation des fichiers [Batch] - Shell/Batch - Programmation

Marsh Posté le 04-02-2010 à 14:27:23    

Bonjour à tous
 
Je suis en train de créer un batch qui est censé faire ceci :
 
- créer un fichier .txt pour chaque fichier .csv présent dans le dossier où est situé le batch en exécutant les modifications suivantes :
 
xxx.csv (composé de deux colonnes de nombres séparées par des tab)
 
1            0
2            0.1
3            0.2
4            0.3
5            0.5
6            0.7
...           ...
 
en ce fichier xxx.txt
 
n
0
0.1
0.2
0.3
0.5
0.7
...
 
 
n représente le nombre de lignes dans le fichier xxx.txt (moins la ligne du n évidemment)
 
Pourriez vous m'aider ?
 
Merci d'avance
 
 
Caldween

Reply

Marsh Posté le 04-02-2010 à 14:27:23   

Reply

Marsh Posté le 04-02-2010 à 14:51:46    

un truc dans le genre devrait faire l'affaire.

Code :
  1. for f in `ls *.csv`
  2. do
  3.     awk 'END{print NR}' $f > $f.txt
  4.     awk 'FS="\t" {print $2}' $f >> $f.txt
  5. done

Message cité 1 fois
Message édité par pataluc le 04-02-2010 à 14:54:04
Reply

Marsh Posté le 04-02-2010 à 16:05:42    

pataluc a écrit :

un truc dans le genre devrait faire l'affaire.

Code :
  1. for f in `ls *.csv`
  2. do
  3.     awk 'END{print NR}' $f > $f.txt
  4.     awk 'FS="\t" {print $2}' $f >> $f.txt
  5. done



 
ça me met une erreur comme quoi "f était inattendu"
 
je ne vois pas où est l'erreur

Reply

Marsh Posté le 04-02-2010 à 16:32:37    

t'es sous windows? elle est là l'erreur... ^^ ce sont des commandes linux.
 
on doit pouvoir faire a peut près pareil sous windows, (si tu récupère gawk dans le package unxutils)
 

Code :
  1. for %f in (*.csv) (
  2.     gawk 'END{print NR}' %f > %f.txt
  3.     gawk 'FS="\t" {print $2}' %f >> %f.txt
  4. )

Reply

Marsh Posté le 04-02-2010 à 16:35:16    

En effet je suis sous Windows :) (pas taper)
 
J'édite mon batch avec Notepad++ mais je ne vois pas ce qu'est le package que tu me recommandes.
 
En tout cas merci pour ton aide !

Reply

Marsh Posté le 04-02-2010 à 16:37:00    

c'est un binaire linux qui a été porté également sous linux, tu peux le trouver la: http://unxutils.sourceforge.net/

Reply

Marsh Posté le 04-02-2010 à 16:51:20    

Je ne peux pas le télécharger du boulot, j'essaierai de chez moi merci bien ;)

Reply

Marsh Posté le 04-02-2010 à 16:58:13    

Ah par contre ce batch est censé tourner sur d'autres PC, n'y aurait-il pas une solution pour ne pas à avoir prendre ce package ?

Reply

Marsh Posté le 04-02-2010 à 17:00:20    

en commande pur windows uniquement, je ne vois pas comment faire, dsl. après il faut passer par un autre langage (perl, python, java)... :spamafote:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed