Recherche multicritères avec Notepad [Résolu]

Signaler
-
 Jack80 -
Bonjour,
j'ai un fichier de plusieurs centaines de lignes de ce style
BUREAU,CHAISE,BLEU,1234,RZC
VOITURE,6CV,VERT,5478,GHF
BUREAU,TABLE,BLEU,8742,JUD
VOITURE,7CV,VERT,2457,FDS
VOITURE,7CV,BLEU,3651,FDS
BUREAU,LAMPE,NOIR,5475,HIJ
VOITURE,7CV,BLEU,1265,IOG
BUREAU,ARMOIRE,NOIR,9875,HDS
VOITURE,7CV,VERT,8574,FDR
VOITURE,7CV,NOIR,3655,FDY
VOITURE,7CV,BLEU,3651,FDS
VOITURE,6CV,BLEU,1234,GHP

et avec Notepad, je voudrai rechercher et remplacer les "VOITURE" qui ne sont pas "BLEU" en "AUTO" "GRIS" en gardant l'ensemble des lignes.
est-ce possible ?
Merci pour votre retour

Configuration: Windows / Chrome 83.0.4103.116

3 réponses

Messages postés
29641
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 septembre 2020
6 726
Bonjour,

Comme écrit plus haut, faire une version mise à jour du fichier avec un tableur (excel, ...) serait aisé.

Mais si notepad ne fait pas référence au bloc notes de windows, mais à l'éditeur notepad++, avec des expressions régulières on peut faire le job.

Pas en une seule commande, car si SAUF permet de cibler une ligne, on ne peut que la remplacer en totalité, pas récupérer des éléments (*).

Ainsi avec le remplacer de notepad++, (case expression régulière cochée)
^(VOITURE,)((?!BLEU).)*$
identifie les lignes voiture SAUF bleu et permet de remplacer la ligne par
AUTO,GRIS
mais pas de récupérer les infos d'origine.

On peut alors procéder par étape :
- VOITURE BLEU devient #OITURE BLEU
remplacer
^(VOITURE,)(.*?,)(BLEU,)(.*?,)(.*)
par
#OITURE,\2\3\4\5
.
- VOITURE XXX devient AUTO GRIS
remplacer
^(VOITURE,)(.*?,)(.*?,)(.*?,)(.*)
par
AUTO,\2GRIS,\4\5
.
- #OITURE BLEU redevient VOITURE BLEU
remplacer
^#OITURE
par
VOITURE
.

Cdlt
(*) si quelqu'un a une solution ....
Merci Jee Pee, ça fonctionne parfaitement.
Messages postés
1166
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
18 septembre 2020
155
Bonjour
Hélas, le Bloc-Note "notepad.exe" n'est qu'un éditeur de texte avec certes une fonction de Recherche/Remplace mais rudimentaire.
Votre demande de recherche "conditionnelle" est plutôt du domaine d'un tableur, a condition de maitriser un peu. Les virgules pourraient facilement être interprétées comme séparateur de colonne.
A+
salut,
ou un script comme
https://supersonique-studio.com/2009/07/rechercher-et-remplacer-en-ligne-de-commande-bash-shell-sed/
où n'importe quel langage de programmation peut faire ça(voir les expressions régulières).
Sinon pas vraiment de rapport avec un éditeur texte ou même le webmastering...
Messages postés
5080
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
18 septembre 2020
1 225
Bonjour à tous,

@jeepee, ta solution utilise les commandes combinées aptes à opérer tout tri et filtrage, mais "oblige" à maîtriser la syntaxe.

Puisque tu nous y invites, je propose de récupérer le fichier texte dans le logiciel Base de la suite LibreOffice.

En utilisant les fonctions de cette base de données, je pense que l'on peut obtenir le même résultat en remplissant un simple requête, voire les enchaîner grâce au langage de programmation Basic.

Qu'en penses tu?

Cordialement
Messages postés
29641
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 septembre 2020
6 726
Oui comme je l'ai écrit, tableur, ou bdd, pourraient faire l'affaire. Et là il faut aussi connaitre le logiciel, sa syntaxe, ses commandes.