web-dev-qa-db-fra.com

Supprimer toutes les lignes du bloc-notes ++

Est-ce qu'il y a un moyen dans Notepad ++ de supprimer toutes les deux lignes? J'ai une liste massive de données et j'ai besoin de réduire la taille.

Les données elles-mêmes ne sont pas si importantes et sur une liste de 10 000 éléments, je n'ai besoin que d'une sélection de 5 000

40
fightstarr20

Je pense que c'est une idée étrange d'essayer de faire avec Notepad ++, mais j'aime un défi, alors j'ai décidé de l'essayer.

Ouvrez le menu Remplacer, remplissez ([^\n]*\n)[^\n]*\n dans la case "Trouver" et $1 dans la case "Remplacer par". Ensuite, sélectionnez une expression régulière pour le mode de recherche, cliquez sur Remplacer tout et toutes les deux lignes sont supprimées.

Vous pouvez créer des expressions rationnelles similaires si vous voulez faire quelque chose de similaire. Par exemple, (([^\n]*\n){a})[^\n]*\n remplacera chaque nième ligne si vous remplacez a par n - 1 et [^\n]*\n([^\n]*\n) vous permettra de conserver des lignes paires au lieu de lignes impaires.

(Ce n'était pas difficile du tout. Tout ce que j'avais à faire, c'était de mettre à jour mon installation obsolète de Notepad ++.)

83
Jasper

Vous pouvez essayer d'utiliser une macro. 

  1. Commencer l'enregistrement Macro
  2. Appuyez n fois
  3. Appuyez sur Maj + Fin
  4. Appuyez sur supprimer deux fois
  5. Arrêter l'enregistrement macro
  6. Exécuter la macro jusqu'à la fin du fichier
19
bsmk

Je pense que vous pouvez le faire avec awk si vous êtes sur une plate-forme de style unix:

awk 'NR % 2 == 0' file > outfile

NR est le numéro de la ligne, donc cela va juste dire "si la ligne est divisible par 2, collez-la dans newfile". 

Si vous êtes sur Windows, je pense que la réponse ici fonctionnerait:

fichier batch à conserver sur dix lignes

6
Evan Reynolds

Je suis tombé sur ce problème moi-même. Ce qui a fonctionné pour moi, en utilisant également la fonction Rechercher/Remplacer, est de:

  1. Ctrl F et aller à Remplacer
  2. En mode de recherche, sélectionnez "Extended (\ n,\r,\t ..)"
  3. Trouver quoi:\n\n
  4. Remplacer par:\n
  5. Remplace tout
2
Steven C

Vous pouvez également utiliser la ligne de commande cc.dl 5.5 de ConyEdit (un plugin) pour supprimer la cinquième ligne de chaque groupe, soit cinq lignes pour chaque groupe.

0
Hunter

Je ne pense pas qu'il existe une fonctionnalité dans Notepad ++ qui supprime automatiquement toutes les autres lignes (ou toutes les nièmes), mais si vous écriviez un programme de conversion court, cela ne prendrait que quelques minutes. 

Le pseudocode ressemblerait à quelque chose comme ceci:

1. Create a StreamReader and StreamWriter (make sure you are not trying to read from
   and write to the same file)
2. While (StreamReader is reading lines) increment i. You could mod it by whatever 
   number n you wanted in order to delete certain lines. Then have a conditional clause
   that would write out if i%n == 0 or whatever you specify.
3. Close the program.

Cela ne répond pas exactement à votre question, mais j'espère que cela vous aidera.

0
khinkle