Recherche multicritères avec Notepad

Résolu/Fermé
Jack80 - 4 juil. 2020 à 18:55
 Jack80 - 5 juil. 2020 à 17:54
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
A voir également:

3 réponses

jee pee Messages postés 40558 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 décembre 2024 9 458
Modifié le 5 juil. 2020 à 16:19
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 ....
1
Merci Jee Pee, ça fonctionne parfaitement.
0
Utilisateur anonyme
4 juil. 2020 à 19:56
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+
0
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...
0
georges97 Messages postés 12711 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 16 décembre 2024 2 432
5 juil. 2020 à 16:25
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
0
jee pee Messages postés 40558 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 16 décembre 2024 9 458
5 juil. 2020 à 16:29
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.
0