75 votes

Comment supprimer les 27 premiers caractères de chaque ligne dans Notepad++?

J'ai un fichier journal et j'ai besoin de supprimer les 27 premiers caractères de chaque ligne. Vous auriez une ligne comme ceci :

2011-09-25 01:25 :29 [INFO]  wazup

Mais il faut que ça ressemble à ceci :

 wazup

0 votes

Tu pourrais utiliser une variante de la commande cut Unix à partir d'Unxutils ou de Busybox pour le faire beaucoup plus facilement - est-ce que cela doit être Notepad++?

0 votes

@JourneymanGeek il ne faut pas que ce soit notepad++, c'est juste ce que j'utilise principalement et il possède une prise en charge des macros et des plugins, donc je pensais qu'il y avait peut-être quelque chose à faire à ce sujet.

95voto

Daniel Beck Points 105590

Utilisez la recherche par expression régulière, recherchez ^........................... et remplacez par (chaîne vide).

entrer la description de l'image ici

Malheureusement, Notepad++ ne prend pas en charge les comptages de répétition comme ^.{27} — la documentation regexp de SciTE s'applique également ici.


Alternativement, utilisez la sélection rectangulaire multi-ligne (appuyez sur Alt tout en sélectionnant) pour sélectionner les 27 premiers caractères de chaque ligne, puis appuyez sur Supprimer ou Retour arrière.

entrer la description de l'image ici


En utilisant des outils Unix (par exemple Cygwin, UnxUtils), vous pouvez utiliser cut -c28- ou sed -E "s|^.{27}||" à la place. Du moins, ce sont les appels en ligne de commande Linux que vous utiliseriez...

29 votes

Alt + Maj + droite pour sélectionner les 27 caractères de la première ligne, puis Pg Dn tout en maintenant Alt + Maj devrait le faire

1 votes

Pour l'expression régulière, Notepad ++ ne suit pas toutes les règles regex standard, donc je ne suis pas surpris que vous n'ayez pas pu le faire fonctionner. Et comme il semble que les 27 premiers caractères sont une date, une heure et un niveau d'erreur, une regex plus informative pourrait être possible, comme ^[0-9\-]+ [0-9:]+ \[[A-Z]+\]

5 votes

Adorer l'Alt pour la sélection rectangulaire !!

12voto

Yurii Points 111

Depuis la publication initiale de la réponse de Daniel Beck, les mises à jour de Notepad++ prennent désormais en charge la répétition d'expressions régulières suivante: ^.{27} Mais notez qu'avec cette seule expression, Notepad++ va continuellement supprimer tous les caractères du document jusqu'à ce qu'il en reste plus de 27. Pour éviter cela, vous pouvez utiliser la recherche/remplacement suivante:

  • Rechercher : ^.{27}(.*)$
  • Remplacer par : $1

0 votes

Cela fonctionne parfaitement!

0 votes

Cette solution fonctionne aussi dans Sublime !

6voto

Eduardo Points 916

Voici la manière macro. C'est plus intuitive pour les personnes non techniques :

1) Placez le curseur sur la première ligne (à n'importe quelle position du curseur)

2) Cliquez sur : Macro -> Commencer l'enregistrement

3) Effectuez les activités de pression de touche suivantes :

* Appuyez sur la touche Accueil  
* Appuyez sur la touche Supprimer 27 fois (jusqu'à atteindre le caractère voulu)
* Appuyez sur le bouton de flèche vers le bas. 

4) Cliquez sur : Macro -> Arrêter l'enregistrement

5) Cliquez sur : Exécuter la macro plusieurs fois -> sélectionnez Exécuter jusqu'à la fin du fichier -> cliquez sur Exécuter.

2voto

Yakir Manor Points 141

Une petite amélioration de la réponse de Daniel Beck :
Utilisez une recherche avec une expression régulière, cherchez :

^...........................(.*.\r\n) 

et remplacez par :

\1

1voto

majkelml Points 11

Peut-être il suffit de sélectionner du texte avec ALT + bouton gauche de la souris

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X