IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Concaténation Fichiers avec suppression premieres lignes


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Par défaut Concaténation Fichiers avec suppression premieres lignes
    Bonjour, bonjour amis developpeurs !

    Si bous pouviez m'aider ce serait génial!

    Mon probleme est le suivant :
    J'ai un piti logiciel qui me crée des fichiers .tsv chaque mois pour tracer des courbes ensuite.
    J'aimerais pouvoir me faire un récapitulatif a l'année. C'est à dire que je voudrais concatener mes 12 fichiers .tsv mensuels en 1 gros fichier .tsv et puis relancer mon plotteur.
    Les fichiers .tsv mensuels ont tous la meme gueule a savoir une entete définissant ce qu'il y a dedans.
    Est ce qu'il est possible via un batch (ou autre si vous avez des idées je suis preneur) de concatener tous les fichiers ensemble mais garder l'entete pour le fichier de janvier et l'enlever sur les autres fichiers de maniere a ce que j'ai une entete et ensuite une liste de données.
    Un pitit exemple au cas ou je ne me sois pas fait comprendre :
    Fichier mensuel . tsv 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #entete
    2009/01/01 24569
    2009/01/02 45698
    ...
    Fichier mensuel .tsv 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #entete
    2009/02/01 12224
    2009/02/02 225254
    ...
    Fichier annuel .tsv:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #entete
    2009/01/01 24569
    2009/01/02 45698
    ...
    2009/02/01 12224
    2009/02/02 225254
    ...
    ect ect
    Concatener semble facile mais pitaing virer ces foutues premieres lignes GROAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR !

    Merci pour vos futures réponses (haaaaaa l'espoir fait vivre !)

    Amicalement, Tequila PAF !

  2. #2
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Par défaut
    Salut,

    Tu peux peut-être faire ça en 2 fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Echo off & Setlocal enableextensions enabledelayedexpansion
    
    set rep=D:\test\huhuhu
    set fic_annuel=fic_annuel.txt
    
    if exist %fic_annuel% del %fic_annuel%
    for /r %rep% %%i in (*.txt) do ( 
    	for /f "delims=" %%j in ('type "%%i" ^|findstr /X "#entete"') do echo %%j > %fic_annuel%
    )
    for /r %rep% %%i in (*.txt) do ( 
    	for /f "delims=" %%j in ('type "%%i" ^|findstr /V "#entete"') do echo %%j >> %fic_annuel%
    )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Par défaut
    Gnéééé ... pas pensé a findstr.... Merci beaucoup !

    Malmheureusement,.... nouveau problème maintenant.
    Alors voila, si tu peux m'expliquer la route a prendre pour y arriver...
    Mes fichiers .tsv sont dans un repertoire.
    Ils sont tous dans le meme repertoire.
    Or, je veux concaténer les fichiers qui ont la meme fin. Je m'explique :
    Dans mon repertoire j'ai :
    2008_09_01_LOL.tsv
    2008_09_01_MDR.tsv
    2008_09_01_PTDR.tsv

    2008_10_01_LOL.tsv
    2008_10_01_MDR.tsv
    2008_10_01_PTDR.tsv

    2008_11_01_LOL.tsv
    2008_11_01_MDR.tsv
    2008_11_01_PTDR.tsv

    2008_12_01_LOL.tsv
    2008_12_01_MDR.tsv
    2008_12_01_PTDR.tsv

    Et je voudrais concatener ensemble les fichiers qui finissent par :
    *_LOL.tsv
    *_MDR.tsv
    *_PTDR.tsv

    Est-il possible de le faire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /r %rep% %%i in (*_LOL.tsv) do
    dans ta boucle?

    Merci beaucoup !
    Amicalement,

    Tequilaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa PAF!

  4. #4
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Par défaut
    Citation Envoyé par Tequilapaf Voir le message
    Est-il possible de le faire avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /r %rep% %%i in (*_LOL.tsv) do
    dans ta boucle?
    Tu as la solution

    Tu peux rajouter une boucle après pour préciser ceux que tu veux concatener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for /r %rep% %%i in (*.txt) do ( 
    	for /f "delims=" %%j in ('type "%%i" ^|findstr /X "#entete"') do echo %%j > %fic_annuel%
    )
    for /r %rep% %%i in (*_LOL.txt) do ( 
    	for /f "delims=" %%j in ('type "%%i" ^|findstr /V "#entete"') do echo %%j >> %fic_annuel%
    )
    for /r %rep% %%i in (*_MDR.txt) do ( 
    	for /f "delims=" %%j in ('type "%%i" ^|findstr /V "#entete"') do echo %%j >> %fic_annuel%
    )

Discussions similaires

  1. [XL-2003] Augmentation de la taille d'un fichier après suppression de lignes
    Par paulinegue dans le forum Conception
    Réponses: 4
    Dernier message: 08/08/2011, 11h12
  2. Compresser un fichier avec Winrar en ligne de commande
    Par da_latifa dans le forum Windows
    Réponses: 1
    Dernier message: 23/10/2010, 11h15
  3. Réponses: 3
    Dernier message: 17/10/2010, 18h10
  4. écrire dans un fichier avec retour à la ligne
    Par qmike dans le forum Langage
    Réponses: 4
    Dernier message: 18/09/2009, 15h44
  5. traiter un fichier, exepté la premier ligne
    Par vince2005 dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2007, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo