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 :

Inversion de ligne dans un fichiers txt [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Inversion de ligne dans un fichiers txt
    Bonjour à tous,

    je souhaite lire un fichier txt, le modifier et inverser des lignes via powershell

    File.txt =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    B
    z
    A
    e
    C
    B
    B
    z
    A
    e
    C
    ...
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $file1 = file.txt
     
    #Je recup les lignes qui m'intéresse
    Gci $file1 | Foreach {$CurrentFile=$_;$_}| Get-Content | Select-String -Pattern "A" , "B" , "C" | Set-Content $file1
     
    #Je remplace les lignes avec la syntaxe que j'ai besoin 
    $content =  Get-Content $file1 | 
                foreach { $_ -replace "A","aa" } | 
                foreach { $_ -replace "B","bb" } |
                foreach { $_ -replace "C","cc" } 
     
    Set-Content file.txt -Value $content

    Du coup mon fichier txt =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    bb
    aa
    cc
    bb
    bb
    aa
    cc
    ...
    Jusque la tout est bon mais je souhaite que les lignes A soit avant les ligne B.
    Auriez-vous une idée ?

    Merci d'avance pour vos réponse

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-Content -Path "file.txt" | Select-String -Pattern "A" , "B" , "C" | ForEach-Object {$_ -replace "A", "aa" -replace "B", "bb" -replace "C", "cc"} | Sort-Object | Set-Content -Path "file2.txt"

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-Content -Path "file.txt" | Select-String -Pattern "A" , "B" , "C" | ForEach-Object {$_ -replace "A", "aa" -replace "B", "bb" -replace "C", "cc"} | Sort-Object | Set-Content -Path "file2.txt"
    Merci pour ta réponse mais mon objectif est un peu plus compliqué.

    J'ai mal exprimé le résultat final que je souhaite =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    aa
    bb
    cc
    aa
    bb
    bb
    cc
    ...
    et non =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    aa
    aa
    bb
    cc
    bb
    bb
    cc

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    UP

    J'ai réfléchi et réussi à stocker A / B / C dans des fichiers séparés,
    mais je n'arrive pas à les "mixer" dans un même fichier style :

    aa
    bb
    cc

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    J'ai réfléchi et réussi à stocker A / B / C dans des fichiers séparés
    Je ne pense pas que ça serve à grand chose pour obtenir ton résultat final souhaité.

    Il faudrait faire un petit algorithme.
    Je suis assez occupé mais je regarderai cela si tu n'a pas trouvé de solution.

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Voici un code, ce n'est pas très joli mais ça fait le boulot

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $items = Get-Content -Path "file.txt" | Select-String -Pattern "A" , "B" , "C" | ForEach-Object {$_ -replace "A", "aa" -replace "B", "bb" -replace "C", "cc"}
     
    $itemSort = @()
    $itemTmp = @()
    $LastIsC = $false
     
    foreach($item in $items)
    {
        if ($LastIsC -and $itemTmp.Count -gt 0 -and $item -ne "CC")
        {
            $itemSort += $itemTmp | Sort-Object
            $itemTmp = @()
            $LastIsC = $false
        }
        elseif ($item -eq "CC")
        {
            $LastIsC = $true
        }
     
        $itemTmp += $item
    }
    $itemSort += $itemTmp | Sort-Object
     
    $itemSort | Set-Content -Path "file2.txt"

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Super ! Pas très jolie mais c'est pas le but
    Merci beaucoup, j'étais vraiment bloqué.
    J'apprends sur le tas, c'est pas toujours facile, heureusement que la communauté est là

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. nombre de lignes dans un fichier .txt
    Par marieo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 31/10/2007, 15h22
  2. Modifier une ligne dans un fichier txt en java
    Par nihad510 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/10/2007, 22h08
  3. Suppression d'une ligne dans un fichier txt
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/07/2007, 17h58
  4. suprimmer une ligne dans un fichier .txt
    Par Totuch dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2007, 11h28
  5. nbr de lignes dans un fichier txt
    Par ibtisss dans le forum Langage
    Réponses: 3
    Dernier message: 04/11/2005, 15h09

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