J'essaie d'exécuter un regEXP unix sur chaque fichier journal dans un répertoire de 1,12 Go, puis remplacez le motif correspondant par ''
. Test exécuté sur un fichier de 4 meg a pris environ 10 minutes, mais a fonctionné. Évidemment, quelque chose nuit à la performance de plusieurs ordres de grandeur. MISE À JOUR: Je remarque que la recherche de^(155 [0-2]). * $ Prend ~ 7 secondes dans un fichier de 5,6 Mo avec 77 correspondances. Ajout de l'assertion de Lookahead négative,?!, De sorte que le regExp devient^(?! 155 [0-2]). * $ Amène à prendre au moins 5-10 minutes; accordé, il y aura des milliers et des milliers de matches.RegExp de style UNIX Remplacer s'exécutant extrêmement lentement sous Windows. Aidez-moi? EDIT: Affirmation de lookahead négatif impact sur les performances
Est-ce que l'assertion de lookahead négative devrait être extrêmement préjudiciable à la performance quand il y a beaucoup de correspondances?
Quelle est l'utilisation de tous les '. *'? – kennytm
J'utilise.* pour correspondre à 0 occurrences ou plus de n'importe quel caractère .. disant essentiellement "saisir tout le texte avant et après la chaîne de nombre" Je vais me débarrasser de celui qui précède le signe dollar (match de fin de ligne), mais je ne pense que c'est mon goulot d'étranglement ... –
Votre regex dit 155, mais votre texte dit 152. Est-ce une faute de frappe, ou utilisez-vous la mauvaise regex? – Kip