Batch Supprimer des lignes vides d'un CSV et des lignes commencent par - ou *

** -  
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j`ai vu une réponse sur ma question dans ce site merci pour la réponse et je voudrais comprendre ce script svp quelqu’un me explique

findstr /v "^$" f1.csv > f2.csv


merci d`avance
A voir également:

37 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Bonjour,

Les lignes vides sont désignées par la regex "^$"
Le commutateur /v désigne toutes les lignes ne contenant pas la chaine recherchée.

Le symbole > redirige la sortie de la commande FINDSTR vers le fichier f2.csv

1
**
 
merci bq pour l`explication
mais comment je vais utiliser ce script pour l`exécute sur mon fichier, copie le sur un fichier.bat?
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > **
 
Tout à fait, tu copies-colles cette commande dans un fichier texte, que tu renommeras toto.bat
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
j`ai essayé mais il me donne un fichier csv vide
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Il faudrait donner plus de détails.
Est-ce que le script est dans le bon dossier ?
Est-ce que tu as indiqué dans le fichier .bat le nom exact du fichier .csv ?
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
c`est mon fichier csv et le scripte .bat et le fichier f2 qui me donne vide
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Ton fichier s'appelle combine.csv, tu n'as pas l'impression d'avoir oublié quelque chose dans le script .bat ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
dsl j`ai pas compris ta question
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Actuellement la commande FINDSTR traite le fichier f1.csv alors que le fichier à traiter s'appelle combine.csv
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
ah d`accord merci
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
reste le mm prblm
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Ok, est-ce que tu pourrais m'envoyer ton fichier pour que je fasse des tests ?
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
la je peut envoyer que des photo PNG,JPEG.. comment je peut envoyer un fichiier csv
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Tu peux envoyer ton fichier sur ce site : https://www.cjoint.com/

Ensuite il faut me donner le lien pour que je puisse le télécharger.
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Voici le pourquoi du comment ça ne fonctionne pas. Ton fichier est issu de Linux/Unix et donc toutes les lignes se terminent par un caractère LF (Line Feed)

Sur Windows le caractère de fin de ligne est le CR-LF (Carriage Return - Line Feed)

Voilà pourquoi la commande FINDSTR ne fonctionne pas comme attendu.

J'ai trouvé sur un site une commande qui permet de résoudre le problème :
for /f "eol= delims= usebackq" %%A in (combine.csv) do (echo %%a>> f2.csv)


Voilà le site qui donne la solution :
https://qastack.fr/superuser/71507/convert-unix-line-endings-to-windows
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
Avez-vous vu le fichier?
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
cette commende ca marche pas il me donne juste des %a %a.......
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Ah oui désolé j'ai modifié un truc que j'aurai pas dû, voilà la correction :
for /f "eol= delims= usebackq" %%A in (combine.csv) do (echo %%A>> f2.csv)


N'oublie pas de supprimer l'ancien fichier f2.csv avant le lancer le script.
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
en tout cas mrc bq pour tes effort
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
Je vous suis reconnaissant
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
yes!! ca marche bien je suis vraiment reconnaissante
dernière question svp : comme vous voyez dans mon fichier csv après la combinaison de 50 fichier de mm genre, la première ligne et la 2eme se répète chaque fois comment je peut les supprimer et ne laisse que les premiers
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Voilà la solution :

if exist "f2.csv" (del "f2.csv")
FOR /F "eol= delims= usebackq" %%a IN (combine.csv) DO (ECHO %%a>> f2.csv)
findstr ":" f2.csv > f3.csv


Le résultat final se trouve dans f3.csv
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
est-ce qu`en peut faire deux commandes dans le mm scripte
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
oui il y a actuellement 3 commandes dans le script
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
cette commande annule aussi les 2 premier lignes (les en-têtes du tableau)
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Je croyais que tu voulais supprimer ces lignes, je ne suis plus certain de comprendre ce que tu veux.
Je dois m'absenter, on reprendra plus tard ;)
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
merci infiniment
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
De rien ;)
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
svp comment je peut copie des fichier de 4 genres a partir d`un dossier qui contient plusieurs fichiers
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Peux-tu donner un exemple concret avec les noms, emplacements et contenus des fichiers ?
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention  
 
C'est quoi les 4 genres ?
0
kadi_96 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
j`ai un dossier s`appelle PMON, a l`intérieur de se dossier il y a presque 50 dossier numérisé de 0 a 50, le dossier qui m`intéresser est le dossier numéro 7 dans ce dossier il y a presque 1000 fichier texte je vais t`envoyer le dossier ou faire un screen pour me comprendre
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Le dossier s'appelle juste 7 ?
0