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 :

Récupérer des lignes d'un fichier txt dans un autre


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Récupérer des lignes d'un fichier txt dans un autre
    Bonjour,

    Je cherche à récupérer des champs de toutes les lignes d'un fichier .txt.
    les lignes commencent par 022, 033:

    022;Paris;020312;toto;00000123;123;
    033;1234560;titi;tutu;01022012;

    Je cherche a les lister dans un nouveau fichier .txt avec un positionnement pour chaque champs:
    1er champ sur 3 car
    2eme champs sur 06car
    03 champs sur 11car ect ect

    C'est la partie récupération des lignes qui m'interressent.
    Une idée?

    Merci.

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2008
    Messages : 100
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Boulboul22 Voir le message
    Bonjour,

    Je cherche à récupérer des champs de toutes les lignes d'un fichier .txt.
    les lignes commencent par 022, 033:

    022;Paris;020312;toto;00000123;123;
    033;1234560;titi;tutu;01022012;

    Je cherche a les lister dans un nouveau fichier .txt avec un positionnement pour chaque champs:
    1er champ sur 3 car
    2eme champs sur 06car
    03 champs sur 11car ect ect

    C'est la partie récupération des lignes qui m'interressent.
    Une idée?

    Merci.
    Salut,

    Vite fait comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $a = Get-Content (fichier.txt)
    Foreach ( $line in $a ) {
       if ($line -match "^[022]|[033]" ) {
          $line_splitted = $line.split(";")
          Write-Host $line_splitted[0] $line_splitted[3] $line_splitted[5] 
       }
    }
    Get-Content va lire tout le fichier et stocker toutes les lignes sous forme de tableau.
    Apres tu fais un match en utilisant les regex.
    Je suis une quille en regex donc pas sur que ça match quoi que ce soit comme ça, mais l'idée est là
    Ensuite tu split le tout pour mettre chaque élément entre deux ; dans un les parties d'un tableau et le tour est joué.

    A mon avis ton fichier texte est au format CSV ? Tu dois pouvoir trouver ton bonheur de manière moins compliquée avec Import-Csv


    Voili Voilou

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par SiSMik Voir le message
    mais l'idée est là
    Oui, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $T= @(
    "022;Paris;020312;toto;00000123;123",
    "033;1234560;titi;tutu;01022012",
    "2;1234560;titi;tutu;01022012",
    "0;1234560;titi;tutu;01022012",
    "3;1234560;titi;tutu;01022012"
    )
     
    $T|Where {$_ -match "^[022]|[033]" }
    #ou 
    $T|Where {$_ -match "^(022|033)" }
    Tu construis une étendue de caractères avec [], [ 0 ou 2 ou 2] ou [0 ou 3 ou 3], là où il faut un groupe de caractères () ('022' ou '033').

    On peux aussi l'écrire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $T|Where {$_ -match "^022|^033" }
    [edit]
    Citation Envoyé par SiSMik Voir le message
    A mon avis ton fichier texte est au format CSV ? Tu dois pouvoir trouver ton bonheur de manière moins compliquée avec Import-Csv
    Dans cas cas il faut ajouter les noms de colonnes au début du fichier

Discussions similaires

  1. Supprimé des lignes d'un fichier contenu dans un autre fichier
    Par nekcorp dans le forum Général Python
    Réponses: 12
    Dernier message: 05/05/2014, 21h27
  2. Extraction des lignes d'un fichier txt dans un tableau
    Par med.ben235 dans le forum Débuter
    Réponses: 1
    Dernier message: 28/04/2014, 17h56
  3. [PowerShell] Récupérer certaines lignes d'un fichier txt dans un autre
    Par TanKer dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 16/11/2011, 21h31
  4. Réponses: 3
    Dernier message: 24/04/2007, 11h06
  5. Réponses: 1
    Dernier message: 05/10/2006, 09h56

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