Comment supprimer toutes les lignes impaires dans Notepad ++?

29

J'essaie d'éditer un document de 20000 lignes. Je dois supprimer toutes les lignes impaires, par exemple:

Apple
Monkey
Orange
Lion
fruit
animal

Comment supprimer tous les caractères des lignes impaires du document?

Nithin N
la source
qu'entendez-vous par ligne impaire? Voulez-vous dire que vous souhaitez supprimer le mot impair (indésirable) de l'ensemble du document?
antzshrek du
4
Toutes les lignes impaires comme 1,3,5,7,9,11,13,15 .... ainsi de suite.
Nithin N
1
Essayez de remplacer par une nouvelle ligne (regexp): [\ n. + \ N]
Art Gertner
@ArtGertner j'ai essayé avec l'expression son ne fonctionne pas.
Nithin N
1
J'enregistrais une macro stupide: flèche vers le bas, flèche vers le bas, del.
chingNotCHing

Réponses:

23

Vous pouvez le faire avec rechercher et remplacer:

  • Ouvrez la boîte de dialogue de remplacement ( Ctrl+ H)
  • Sélectionnez "Expression régulière"
  • Trouver quoi: .+\r\n(.+(\r\n|$))
  • Remplacer par:
    $1
  • Appuyez sur "Remplacer tout"

Remarques:

  • Selon votre système d'exploitation, vous devez utiliser \r(ancien Mac), \n(Unix, OS X) ou \r\n(Windows) pour correspondre à la fin de la ligne, ou simplement utiliser \Rce qui devrait fonctionner partout (merci pour @Aurel Bílý)
  • \n|$ est nécessaire pour avoir un résultat correct même à la fin du fichier
  • Par défaut, Notepad ++ remplace la position réelle du curseur à la fin du fichier. Assurez-vous de placer votre curseur au début du fichier.
    • (Vous pouvez également cocher la case "boucler", mais dans ce cas, cela supprimera d'abord la ligne dans laquelle se trouve votre curseur, au lieu de rechercher réellement une ligne impaire.)

Entrez la description de l'image ici

Máté Juhász
la source
Cela fonctionne presque, mais il
n'édite
Changez la capture d'écran avec plus de transparence de cette fenêtre de remplacement.
Biswapriyo
11
Veuillez noter que la \rfin de ligne est très rare - elle était en effet utilisée sous Mac OS, mais dans les versions classiques pré-OS-X. Sous OS X et suivants, les fins de ligne sont \n, comme tout Unix sain d'esprit. Est également \Rpréférable pour faire correspondre n'importe quelle fin de ligne.
Aurel Bílý
@ AurelBílý C'est vrai, cependant Notepad ++ ne fonctionne que sur Windows, donc la portabilité ici n'est pas vraiment un problème.
Rob
18
  • Ctrl+H
  • Trouver quoi: .+\R(.+)
  • Remplacer par: $1
  • Replace all

Explication:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • Vérifier l'expression régulière
  • NE VÉRIFIEZ PAS . matches newline

Résultat pour un exemple donné:

Monkey
Lion
animal
Toto
la source
@NithinN: sachez que la réponse acceptée ne fonctionne pas avec les fichiers Linux (par exemple, saut de ligne \n)
Toto
7
  1. Ouvrez le fichier et placez votre curseur de texte au début de la première ligne.
  2. Menu → MacroDémarrer l'enregistrement
  3. Appuyez sur la Endtouche du clavier
  4. Shift+ Home, alorsbackspace
  5. Down
  6. Backspace
  7. Down
  8. Menu → MacroArrêter l'enregistrement
  9. Menu → MacroExécuter une macro plusieurs fois → Cochez Exécuter jusqu'à la fin du fichier
  10. Cliquez sur Run

Fondamentalement, effectuez l'action une fois pour supprimer une ligne impaire, puis demandez au programme de répéter l'action jusqu'à la fin du fichier. Cela peut être utilisé pour résoudre de nombreux problèmes!

UserF40
la source
1

Je viens de vérifier sur le PC de mon collègue qui utilise réellement Notepad ++. Essaye ça:

Entrez la description de l'image ici

Art Gertner
la source
Il me semble que cela supprime les lignes paires (2,4,6 ...), pas impaires.
Máté Juhász
1
C'est exact. Cependant, la suppression des lignes paires est plus facile et le problème peut être résolu en ajoutant une ligne vide au début du fichier
Art Gertner
@ArtGertner devrait être \ r \ n. + \ R \ n remplacé par \ r \ n
chingNotCHing
@chingNotCHing, bon! J'ai mis à jour ma réponse
Art Gertner
@ArtGertner Comme vous l'avez souligné, cela ne fonctionne que pour les lignes paires. Mais pour un grand ensemble de données, il n'est pas édité pour le premier ensemble de données, par exemple de la 1 à la 15e ligne.
Nithin N