Précédent   Forum des professionnels en informatique > Logiciels > Autres Logiciels
Autres Logiciels Bureautique, navigateurs, clients mails, traitements de textes, tableurs, multimédia, logiciels divers, etc...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2011, 12h59   #1
Membre à l'essai
 
Inscription : janvier 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 120
Points : 24
Points : 24
Par défaut Notepad++ expression reguliere

Bonjour,

Dans notepad++ on peut utiliser les expressions régulières. J'ai un fichier de 45000 lignes dans lequelle j'ai des lignes en doublon du genre :
insert into ressource (id, idpat, conditionning) /n values (1,2,3);

Je voudrais supprimer toutes les lignes qui sont de ce type :
insert into ressource (id, idpat, conditionning) /n values (

sachant que dans le values les valeurs diffèrent à chaque ligne.

Est ce que quelqu'un pourrait m'aider s'il vous plait ?
Merci.
Jarod51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2011, 14h15   #2
Membre régulier
 
Inscription : décembre 2008
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 64
Points : 87
Points : 87
Bonjour,

Je vois que ton post date de presque 1 mois, et il n'a pas de réponse, peut-être parce qu'il manque de précision.
Ce fichier, c'est un fichier d'export SQL d'une base de donnée non ?
Je suppose que ton fichier est de ce style :
Code :
1
2
3
4
5
6
7
8
9
.....
insert into ressource (id, idpat, conditionning)
values (1,2,3);
insert into ressource (id, idpat, conditionning)
values (4,5,6);
insert into ressource (id, idpat, conditionning)
values (7,8,9);
.....
Et que tu veuilles obtenir :
insert into ressource (id, idpat, conditionning)
values
(1,2,3),
(4,5,6),
(7,8,9);
C'est ça ?
Dans ce cas voici la procédure avec Notepad++ que je te propose :
Etape 1 : enlever les lignes insert into sauf la première
  1. FAIS UNE COPIE DE SAUVEGARDE DE TON FICHIER ORIGINAL (!!!)
  2. Sélectionne (sans le retour à la ligne) la première ligne où se trouve l'insert qui se répète
  3. Fais click droit "copier" (ça va servir après)
  4. Fais "CTRL H" ou "Remplacer" dans le menu "Edition"
  5. Mets un back slash devant les parenthèses comme ceci : insert into ressource \(id, idpat, conditionning\)
  6. Mets "DOUBLON" dans le champ "Remplacer par"
  7. Sélectionnes l'option "Expression régulière"
  8. Fais "Remplacer tout"
  9. Reviens sur la première ligne contenant "DOUBLON" au dessus de values (1,2,3); (la première des lignes "values") Sélectionne le mot"DOUBLON" et fait coller pour remettre l'insert into
Tu dois obtenir ça :
Code :
1
2
3
4
5
6
7
insert into ressource (id, idpat, conditionning)
values (1,2,3);
DOUBLON
values (4,5,6);
DOUBLON
values (7,8,9);
Etape 2 Enlever les lignes contenant "DOUBLON" suivies par "values"
  1. CTRL H (ou "remplacer"
  2. Mettre "DOUBLON\r\nvalues" dans le champ "Rechercher" (ou "DOUBLON\nvalues" si fichier type unix)
  3. Laisser le champ "Remplacer" vide
  4. Clicker sur "Mode Etendu ..."
  5. Faire "Remplacer tout"
Tu dois obtenir ça :
Citation:
insert into ressource (id, idpat, conditionning)
values (1,2,3);
(4,5,6);
(7,8,3);
Etape 3 : remplacer les point virgules de la liste values par des virgules sauf le dernier
  1. Sélectionnes toutes les lignes comprises entre "values (1,2,3)" et l'avant dernière des valeurs à insérer, soit (4,5,6) dans mon cas
  2. Faits "CTRL H" ou "remplacer"
  3. Mets ");" dans le champ "Rechercher"
  4. Mets ")," dans le champs "Remplacer par"
  5. Coche la cas "Dans sélecetion"
  6. Cliques sur "Mode Normal"
  7. Faits "Remplacer Tout"
Note : si tu n'a pas envie de sélectionner les lignes, tu remplaces tout et tu changes à la main la dernière virgule par un point virgule pour le dernier groupe de values.

Voilà à peu près le principe, tu auras peut-être quelques ajustements selon le contenu réel de ton fichier.
Ce qu'il faut savoir avec Notepad++ c'est que les regex ne sont pas totalement gérées et qu'il faut jouer avec le mode étendu pour les caractères de fin de lignes en particulier.

Tu as probablement résolu le problème depuis, mais ça pourra servir à quelqu'un d'autre, et puis c'est un jeu de résoudre un problème pour moi comme je pense pour beaucoup de gens sur ce forum !

Cordialement
semaphore1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 10h05   #3
Membre à l'essai
 
Inscription : janvier 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 120
Points : 24
Points : 24
Bonjour semaphore1984,

Merci pour ta solution. C'est effectivement ça que je voulais faire sous Notepad++ mais sans succès. Au final, je m'en étais sorti en important le fichier .sql dans Excel et je supprimé toutes les colonnes qui étaient en doublon.

Je garde bien précieusement ta méthode.

Merci encore .
A+.
Jarod51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h01.


 
 
 
 
Partenaires

Hébergement Web