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 :

Supprimer les lignes doubles et ne garder que les lignes uniques [Batch]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2022
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Supprimer les lignes doubles et ne garder que les lignes uniques
    Bonjour à tous,

    Après de multiples recherche (et mes maigres connaissances) je ne trouve pas mon bonheur.

    Voilà j'ai un petit soucis dans un fichier .txt, je souhaite ne garder que les lignes qui sont uniques (car j'ai plein de lignes en doublon).
    Je n'arrive pas a trouver comment faire ni avec quelle commande exécuter cela.

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    D'après Remove Duplicate Rows From A Text File Using Powershell
    En PowerShell avec une seule ligne, vous pouvez trouver votre bonheur
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    gc $filename | sort | get-unique > $newfileName
    Et on peut le combiner avec le batch bien sûr
    Code Batch : 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
    @echo off
    Title Remove Duplicates Lines & Mode 75,3 & Color 0B
    Set InputFile="%~1"
    If [%Inputfile%] EQU [""] goto Usage
    set "OutPut=%~n1_Unique.txt"
    echo( & echo( Please Wait a while ...
    Call :GetUnique %Inputfile% "%OutPut%"
    If Exist "%OutPut%" Start "" /MAX "%OutPut%" & Exit
    ::--------------------------------------------
    :GetUnique <InputFile> <OutPuFile>
    Powershell -C "(gc '"%~1"').ToLower() | sort | get-unique >'"%~2"'"
    Exit /B
    ::--------------------------------------------
    :Usage 
    echo( & echo( Glisser et deposer un fichier sur ce batch pour supprimer les doublons
    Timeout /T 5 /NoBreak>nul
    Exit /B
    ::--------------------------------------------

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    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 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Ton code batch n'est pas identique au code PowerShell.
    Le changement de casse ne fait pas partie du cahier des charges. Le trie non plus d'ailleurs.

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2022
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Hello,
    D'abord merci d'avoir pris le temps de me lire et d'avoir fait une réponse.
    J'ai modifié un peu le code pour répondre mes besoins (le tri n'est pas dérangeant):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    Title Remove Duplicates Lines & Mode 75,3 & Color 0B
    Set InputFile=C:\Windows\Temp\Test\FichierConca.txt
    Set "OutPut=C:\Windows\Temp\Test\FichierASupp.txt
    echo( & echo( Please Wait a while ...
    Call :GetUnique %Inputfile% "%OutPut%"
    ::--------------------------------------------
    :GetUnique <InputFile> <OutPuFile>
    Powershell -C "(gc '"%~1"')| sort | get-unique >'"%~2"'"
    Exit /B
    ::--------------------------------------------
    Malheureusement je ne souhaite pas garder les lignes qui ont été en double, cela sera plus parlant avec un exemple:

    texte original:
    Titi
    Tata
    Tata
    Titi
    Toto
    Tutu
    Texte après suppression :
    Toto
    Tutu
    Je souhaite donc conserver uniquement les lignes solo du fichier.

  5. #5
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    @NoFear14
    Si votre problème est résolu, alors n'oubliez pas de le marquer comme
    Sinon, donnez-nous plus d'informations.
    @+

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    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 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Voici le code PowerShell qui fait ce que tu souhaites, je vous laisse le "batchifier" si vous le voulez


    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $input = "C:\mon dossier\test.txt"
    $output = "C:\mon dossier\test2.txt"
     
    $content = Get-Content -LiteralPath $input
    $doublon = $content | Group-Object | Where-Object {$_.Count -gt 1} | Select-Object -ExpandProperty Group
    Set-Content -Value (($content | Where-Object {$_ -notin $doublon}) -join "`r`n") -LiteralPath $output -NoNewline

    PS1 : Insère des sautes de ligne de type \r\n dans le nouveau fichier
    PS2 : Comparaison insensible à la casse
    PS3 : Pas de gestion de l'encodage (sans plus d'info)

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2022
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Reprise du lundi !

    Après plusieurs essais ça marche nickel ! je te remercie j'avais trouvè une solution tout en Batch mais ça prenait des plombs pour l'éxécuter.

    Donc merci ça m'a permis de gagner énormément de temps

    Reste plus qu'à implémenter ça dans le reste de mon script batch.

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

Discussions similaires

  1. Supprimer les lignes en double dans un fichier texte
    Par SilkyRoad dans le forum Contribuez
    Réponses: 1
    Dernier message: 01/05/2017, 15h09
  2. Supprimer les doublons uniques
    Par jim29 dans le forum Scilab
    Réponses: 2
    Dernier message: 02/04/2015, 18h50
  3. Réponses: 3
    Dernier message: 06/03/2014, 20h44
  4. Réponses: 14
    Dernier message: 22/09/2011, 16h11
  5. Supprimer les lignes en double
    Par illight dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/09/2007, 19h43

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