Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
610 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Transformation des fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch] Transformation des fichiers

n°1962934
Caldween
Posté le 04-02-2010 à 14:27:23  profilanswer
 

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

mood
Publicité
Posté le 04-02-2010 à 14:27:23  profilanswer
 

n°1962941
pataluc
Posté le 04-02-2010 à 14:51:46  profilanswer
 

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
n°1962985
Caldween
Posté le 04-02-2010 à 16:05:42  profilanswer
 

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

n°1963003
pataluc
Posté le 04-02-2010 à 16:32:37  profilanswer
 

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. )

n°1963006
Caldween
Posté le 04-02-2010 à 16:35:16  profilanswer
 

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 !

n°1963007
pataluc
Posté le 04-02-2010 à 16:37:00  profilanswer
 

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

n°1963015
Caldween
Posté le 04-02-2010 à 16:51:20  profilanswer
 

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

n°1963020
Caldween
Posté le 04-02-2010 à 16:58:13  profilanswer
 

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 ?

n°1963022
pataluc
Posté le 04-02-2010 à 17:00:20  profilanswer
 

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:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Transformation des fichiers

 

Sujets relatifs
[Thread?] Liste de fichiersBatch : chercher un fichier puis lui ajouter des lignes
[Batch MS DOS] déplacement de répetoiresupload: Comment récupérer tous les fichiers d'un rep client
Bibliothèque de fichierszip lib: memory exceeded sur les gros fichiers zip
transférer beaucoup de fichiersLecteur rss : Récupérer les fichiers média d'un flux
Problème de structure et fichiersBoucle ping dans un batch pour détecter une déconnexion
Plus de sujets relatifs à : [Batch] Transformation des fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR