Supprimer des lignes identiques avec un bat
galelitobzh
Messages postés
1
Statut
Membre
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je cherche à supprimer des lignes répétées dans un fichier texte avec un batch
exemple fichier source:
QI-500801
48.30
2.6
P265GH
144.90
PX -891.8500, 2791.2449, -1201.8
QI-500801
48.30
2.6
P265GH
144.90
PX -595.7123, 2495.1071, -1201.8
QI-500801
48.30
2.6
P265GH
144.90
PX -122.1359, 2495.1071, -1201.8
Résultat souhaité:
QI-500801
48.30
2.6
P265GH
144.90
PX -891.8500, 2791.2449, -1201.8
PX -595.7123, 2495.1071, -1201.8
PX -122.1359, 2495.1071, -1201.8
Merci
je cherche à supprimer des lignes répétées dans un fichier texte avec un batch
exemple fichier source:
QI-500801
48.30
2.6
P265GH
144.90
PX -891.8500, 2791.2449, -1201.8
QI-500801
48.30
2.6
P265GH
144.90
PX -595.7123, 2495.1071, -1201.8
QI-500801
48.30
2.6
P265GH
144.90
PX -122.1359, 2495.1071, -1201.8
Résultat souhaité:
QI-500801
48.30
2.6
P265GH
144.90
PX -891.8500, 2791.2449, -1201.8
PX -595.7123, 2495.1071, -1201.8
PX -122.1359, 2495.1071, -1201.8
Merci
Configuration: Windows XP Firefox 3.6
4 réponses
-
Tien tu peux faire un truc comme ça:
@echo off setlocal enableDelayedExpansion set ligneNbr=1 for /f "delims=""" %%i in ('type "In.txt"') do ( set copie=1 if not exist "Out.txt" echo %%i>>Out.txt for /f "delims=""" %%j in ('type "Out.txt"') do if %%j==%%i set copie=0 if !copie!==1 echo %%i>>Out.txt) pause
Bilou. -
Au passage la ligne set ligneNbr=1 ne sert a rien, c'est parce que j'étais partie sur un truc au début.
Ce qui donne:@echo off setlocal enableDelayedExpansion for /f "delims=""" %%i in ('type "In.txt"') do ( set copie=1 if not exist "Out.txt" echo %%i>>Out.txt for /f "delims=""" %%j in ('type "Out.txt"') do if %%j==%%i set copie=0 if !copie!==1 echo %%i>>Out.txt) pause
Bilou. -
-
hello
C:>@echo off setlocal enableDelayedExpansion copy NUL out.txt > NUL for /f "delims=" %%a in ('type source.txt') do ( findstr /l /c:"%%a" out.txt > NUL if !errorlevel! EQU 1 echo %%a >> out.txt )