Supprimer une ligne ne commençant pas par ..
Résolu/Fermé
Mael730
Messages postés
49
Date d'inscription
vendredi 23 octobre 2009
Statut
Membre
Dernière intervention
9 février 2010
-
26 oct. 2009 à 15:46
Mael730 Messages postés 49 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 9 février 2010 - 27 oct. 2009 à 13:44
Mael730 Messages postés 49 Date d'inscription vendredi 23 octobre 2009 Statut Membre Dernière intervention 9 février 2010 - 27 oct. 2009 à 13:44
A voir également:
- Supprimer une ligne ne commençant pas par ..
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
- Site de vente en ligne particulier - Guide
10 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
26 oct. 2009 à 16:06
26 oct. 2009 à 16:06
déjà pas batch !
perl, c'est bien. Moi je l'aurait fait en bash+sed, mais ce n'est qu'une question de choix.
En perl, il faut utiliser les expressions conditionnelles.
conserve les ligne commençant ainsi (cf. expression rationnelle en perl) :
/^..\/..\/.... ..:../
perl, c'est bien. Moi je l'aurait fait en bash+sed, mais ce n'est qu'une question de choix.
En perl, il faut utiliser les expressions conditionnelles.
conserve les ligne commençant ainsi (cf. expression rationnelle en perl) :
/^..\/..\/.... ..:../
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
26 oct. 2009 à 16:15
26 oct. 2009 à 16:15
hello
avec findstr
avec findstr
C:>\ type f2.txt Date Temps DurÚe_Pas NomBat 13/12/2008 21:04 113965 11:36:51 0501348EXI16 15/12/2008 11:44 253181 11:39:50 0501348EXI16 Appoint en eau le 151208 el1 : 350 ml el2 : 350 ml 16/12/2008 16:03 355113 25:00:13 0501348EXI16 17/12/2008 03:53 397698 10:49:42 0501348EXI16 en ceci: 13/12/2008 21:04 113965 11:36:51 0501348EXI16 15/12/2008 11:44 253181 11:39:50 0501348EXI16 16/12/2008 16:03 355113 25:00:13 0501348EXI16 17/12/2008 03:53 397698 10:49:42 0501348EXI16 C:>\ findstr "^../../" f2.txt 13/12/2008 21:04 113965 11:36:51 0501348EXI16 15/12/2008 11:44 253181 11:39:50 0501348EXI16 16/12/2008 16:03 355113 25:00:13 0501348EXI16 17/12/2008 03:53 397698 10:49:42 0501348EXI16 13/12/2008 21:04 113965 11:36:51 0501348EXI16 15/12/2008 11:44 253181 11:39:50 0501348EXI16 16/12/2008 16:03 355113 25:00:13 0501348EXI16 17/12/2008 03:53 397698 10:49:42 0501348EXI16
Mael730
Messages postés
49
Date d'inscription
vendredi 23 octobre 2009
Statut
Membre
Dernière intervention
9 février 2010
1
26 oct. 2009 à 16:36
26 oct. 2009 à 16:36
Ok je me suis renseigné sur les expressions rationnelles et c'est bien ce qu'il me faut, mais je ne sais pas du tout par ou commencer?? Comment construire ma boucle etc.. (je débute vraiment!)
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
26 oct. 2009 à 16:39
26 oct. 2009 à 16:39
findstr "^../../"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mael730
Messages postés
49
Date d'inscription
vendredi 23 octobre 2009
Statut
Membre
Dernière intervention
9 février 2010
1
26 oct. 2009 à 17:12
26 oct. 2009 à 17:12
Dsl dubcek j'avais pas vu ta réponse!
effectivement ca marche très bien le findstr, tu peux m'éclairer sur ce qui ne va pas la dessous:
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%a in ('dir /b/s *.txt') do
( set D=%%~pa findstr "^../../ ^./../ ^.././" "%%a" > "!D!\"la je ne sais pas quoi mettre" )
Le script parcourerai donc tout les repertoires a la recherche de fichiers txt puis rentrerai dans tous ces fichiers txt pour supprimer les lignes ne commençants pas par une date <=> à extraire les lignes contenant les dates puis réécrire sur le fichier source ces lignes.
effectivement ca marche très bien le findstr, tu peux m'éclairer sur ce qui ne va pas la dessous:
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%a in ('dir /b/s *.txt') do
( set D=%%~pa findstr "^../../ ^./../ ^.././" "%%a" > "!D!\"la je ne sais pas quoi mettre" )
Le script parcourerai donc tout les repertoires a la recherche de fichiers txt puis rentrerai dans tous ces fichiers txt pour supprimer les lignes ne commençants pas par une date <=> à extraire les lignes contenant les dates puis réécrire sur le fichier source ces lignes.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
27 oct. 2009 à 08:11
27 oct. 2009 à 08:11
Je pense vraiment que ça serait plus simple en Perl, surtout que c'est bien plus large que DOS, ça t'ouvrirai d'autres horizons.
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
27 oct. 2009 à 08:38
27 oct. 2009 à 08:38
pour rechercher selon plusieurs critères, il faut les mettre dans un fichier, option /g:. Si j'ai bien compris tu veux remplacer le fichier .txt par le résultat de la recherche ? il faut passer par un fichier temporaire.
!!! Faire des sauvegardes et des tests !!!
!!! Faire des sauvegardes et des tests !!!
C:>\ type gg.txt ^[0-9][0-9]/[0-9][0-9]/ ^[0-9]/[0-9][0-9]/ ^[0-9][0-9]/[0-9]/ C:>\ type fichier.bat @echo off setlocal enableDelayedExpansion for /f "delims=" %%a in ('dir /b/s *.txt') do ( set n=%TMP%\temp01.txt findstr /g:gg.txt "%%a" > !n! copy /y !n! "%%a" )
Mael730
Messages postés
49
Date d'inscription
vendredi 23 octobre 2009
Statut
Membre
Dernière intervention
9 février 2010
1
27 oct. 2009 à 09:17
27 oct. 2009 à 09:17
Merci ça marche!
J'ai aussi essayer sans passer par le fichier gg.txt :
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%a in ('dir /b/s *.txt') do (
set n=%TMP%\temp01.txt
findstr "^../../ ^./../ ^.././ ^././" "%%a" > !n!
copy /y !n! "%%a"
)
exit
Ca marche aussi! y a t-il un inconvénient (que je ne verrai pas à permière vue) à ne pas passer par ce fichier gg.txt?
J'ai aussi essayer sans passer par le fichier gg.txt :
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%a in ('dir /b/s *.txt') do (
set n=%TMP%\temp01.txt
findstr "^../../ ^./../ ^.././ ^././" "%%a" > !n!
copy /y !n! "%%a"
)
exit
Ca marche aussi! y a t-il un inconvénient (que je ne verrai pas à permière vue) à ne pas passer par ce fichier gg.txt?
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
27 oct. 2009 à 10:25
27 oct. 2009 à 10:25
non,effectivement ca marche sans fichier
Mael730
Messages postés
49
Date d'inscription
vendredi 23 octobre 2009
Statut
Membre
Dernière intervention
9 février 2010
1
27 oct. 2009 à 13:44
27 oct. 2009 à 13:44
Ok, affaire classée!
merci dubcek
merci dubcek