Suppression de lignes vides dans Notepad ++

384

Comment remplacer les lignes vides dans Notepad ++? J'ai essayé une recherche et un remplacement avec les lignes vides dans la recherche, et rien dans le remplacement, mais cela n'a pas fonctionné; il a probablement besoin de regex.

nomoreflash
la source

Réponses:

395

Vous avez besoin de quelque chose comme une expression régulière.

Vous devez être en Extendedmode

Si vous voulez que toutes les lignes se retrouvent sur une seule ligne, utilisez \r\n. Si vous voulez simplement supprimer les lignes vides , utilisez \n\rcomme suggéré à l'origine @Link.

Remplacez l'une ou l'autre expression par rien.

Brad
la source
21
Doit d'abord sélectionner «étendu» en mode de recherche.
q0987
14
Pour que vos lignes ne soient pas jointes, vous devez rechercher \r\n\r\net remplacer par \r\n.
Robert Kaucher
1
Voir le commentaire de @ BoltClock ci-dessous. De plus, si votre fichier est enregistré avec des fins de ligne Unix, vous pouvez le convertir en fins de ligne Windows dans Edition> Conversion EOL> Format Windows avant d'effectuer la recherche et le remplacement.
Big McLargeHuge
9
Si vous souhaitez supprimer des lignes avec uniquement des espaces et des tabulations ou rien, essayez d'utiliser regex replace pour correspondre \r\n\W*\r\net remplacer par\r\n
Myster
2
@ ST3 hmm à quoi je pensais, celui-ci est beaucoup mieux: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+et remplacez-le par le \r\nvoir en action ici: regex101.com/r/qD9dB1/1
Myster
567

Il existe maintenant un moyen intégré de le faire à partir de la version 6.5.2

Edit -> Line Operations -> Remove Empty Lines ou Remove Empty Lines (Containing Blank characters)

Capture d'écran de la suppression des lignes vides

Halfwarr
la source
Malheureusement, cela ne tient pas compte de votre sélection, il supprimera toutes les lignes vides du fichier même si vous n'en avez sélectionné que certaines.
Fabio dit Réintégrer Monica
S'il s'agit d'une opération ponctuelle, vous pouvez extraire les lignes sélectionnées vers le nouvel onglet notepad ++ et y effectuer cette opération. Procédure de copier-coller pendant 5 secondes. À mon avis, toute autre solution de contournement qui ne peut pas être accomplie pendant cette période est un gaspillage. Mais si vous faites cela 100 fois par jour ...
credo
J'utilisais cela (même attribué mon raccourci), mais c'est beaucoup plus lent que l'option ci-dessus, alors utilisez-le intelligemment ...
Betlista
122

Il existe un plugin qui ajoute un menu intitulé TextFX. Ce menu, qui abrite une gamme vertigineuse d'options d'édition de texte rapide, donne à une personne la possibilité de faire des changements de codage rapides. Dans ce menu, vous pouvez trouver des sélections telles que Drop Quotes, Delete Blank Lines ainsi que Unwrap and Rewrap Text

Procédez comme suit:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines
kolufild
la source
7
Je ne sais pas quand, mais il semblerait que ce plugin soit installé par défaut maintenant. Légèrement hors sujet, mais l'une des autres fonctionnalités incroyablement utiles, sous TextFX > TextFX Tools, est le tri des lignes, supprimant éventuellement les doublons. Un moyen très pratique de faire un Unix sort -usur une boîte Windows sans cygwin ou unxutils ou similaire.
Cam Jackson du
3
Voici un lien vers le plugin TextFx. Je l'ai trouvé très utile. Utilisez: Settings > Import > plugin...et recherchez le fichier dll pour l'installer. Il devient un élément de menu parPlugins
Nicholas Pickering
1
cela fonctionnera-t-il sur tous les documents ouverts, ou un document à la fois?
Abandonné
76
  1. bloc-notes ++
  2. Ctrl-H
  3. Sélectionnez l'expression régulière
  4. Entrez ^[ \t]*$\r?\ndans trouver quoi, laissez remplacer vide. Cela correspondra à toutes les lignes commençant par un espace blanc et se terminant par un retour chariot (dans ce cas, un crlf windows)
  5. Cliquez sur le bouton Suivant pour voir par vous-même comment il correspond uniquement aux lignes vides.
SleepyBoBos
la source
1
J'ai dû utiliser cette méthode au lieu de certaines des autres méthodes pour qu'elle fonctionne facilement dans une macro. Je vous remercie.
Mafu Josh
5
des remplacements encore plus courts et également moins nécessaires en raison de plusieurs lignes vides seront remplacés en même temps: ^ \ s * $ \ r? \ n
njank
31
  1. Appuyez sur ctrl + h (raccourci pour remplacer).
  2. Dans la zone Rechercher , tapez ^\R(pour les lignes vides exactes) ou ^\h*\R(pour les lignes vides avec des blancs, uniquement).
  3. Laissez la zone Remplacer par vide .
  4. Cochez l' option Wrap around .
  5. Sélectionnez le mode de recherche d' expression régulière .
  6. Cliquez sur le bouton Remplacer tout .

entrez la description de l'image ici

Alex.K.
la source
1
Cela a fonctionné pour moi sans aucun problème ni paramètre supplémentaire à modifier. Merci!
Bonez024
19

Vous pouvez suivre la technique comme indiqué dans la capture d'écran suivante:

  • Trouver quoi: ^\r\n
  • Remplacer par: keep this empty
  • Mode de recherche: Regular expression
  • Enrouler autour: sélectionné

entrez la description de l'image ici

REMARQUE: pour les fichiers * nix, recherchez simplement par\n

Saikat
la source
17

Cela a fonctionné pour moi:

  1. presse ctrl + h (raccourci pour remplacer)
  2. Écrivez l'une des expressions rationnelles suivantes dans la find whatcase. [\n\r]+$ou^[\n\r]+
  3. Laisser Replace with case vide
  4. Dans Search Mode , sélectionnezRegex
  5. Cliquez sur Replace All

    Terminé!
Kamal Nayan
la source
C'est la seule solution qui n'a pas foiré mes énormes fichiers .csv. Merci!
veuncent
1
plus un parce que je connais enfin le raccourci pour remplacer :-D
Betlista
14

Dans le bloc-notes ++ appuyez sur CTRL + H, en mode recherche cliquez sur le bouton radio "Etendu (\ n, \ r, \ t ...)" puis tapez dans la case "Rechercher quoi": \ r \ n (abréviation de CR LF ) et laissez vide la case "Remplacer par".

Enfin, cliquez sur remplacer tout

Bassem
la source
en fait, je l'ai essayé, voir ma clarification dans ma réponse. Vous étiez sur quelque chose!
Brad
3
Cela suppose cependant que les fins de ligne sont Windows (CRLF), si votre fichier est enregistré avec les fins de ligne Unix, recherchez uniquement \n.
BoltClock
@Brad: J'ai écrit entre le () "abréviation de CR LF", je ne voulais pas que codetrek pense que \ n est CR, d'où l'édition.
Bassem
Mauvaise réponse, met toutes les lignes sur une seule ligne.
m0skit0
12

Eh bien, je ne suis pas sûr de l'expression régulière ou de votre situation ..

Que diriez-vous de CTRL + A, sélectionnez le menu TextFX -> TextFX Edit -> Delete Blank Lines et alto all blank line gone.

Une note latérale - si la ligne est vide c'est-à-dire ne contient pas d'espaces, cela fonctionnera

Ahmad
la source
12

Vous pouvez rechercher l'expression rationnelle suivante: ^(?:[\t ]*(?:\r?\n|\r))+et la remplacer par un champ vide

Ya Basha
la source
11

Ctrl + H.

trouver - \ r \ r remplacer par - \ r.

mahesh adepu
la source
Cela fonctionne pour moi, en supprimant la ligne supplémentaire, dans le sens de trouver double \ r remplacer par single \ r. Merci!!
genpet
Cela a bien fonctionné, mais j'ai trouvé que je devais l'exécuter plusieurs fois dans mon document avant que toutes les instances de \ r \ r aient disparu. Je ne sais pas pourquoi.
Hawkwing
7

Cela ne fonctionne évidemment pas si les lignes vides contiennent des tabulations ou des blancs. De nombreuses pages Web (par exemple http://www.guardian.co.uk/ ) contiennent ces lignes blanches, à la suite d'un éditeur HTML défectueux.

Supprimez les espaces blancs en utilisant l'expression régulière comme suit:

changer le modèle: [\ t] + $ en rien.

où [\ t] correspond à une tabulation ou à un espace. '+' correspond à une ou plusieurs occurrences et '$' marque la fin de la ligne.

Utilisez ensuite notepad ++ / textFX pour supprimer des lignes vides simples ou supplémentaires. Assurez-vous que ces lignes vides ne sont pas significatives dans le contexte donné.

Poisson
la source
5

entrez la description de l'image ici

Parfois, \ n \ r etc. ne fonctionne pas, ici pour le comprendre, quelle devrait être votre expression régulière.

Avantage de cette astuce: si vous souhaitez remplacer plusieurs fichiers à la fois, vous devez utiliser cette méthode. Ci-dessus ne fonctionnera pas ...

Wasim A.
la source
5

1) Ctrl + H(Ou Search 🠆 Replace..) pour ouvrir la fenêtre Remplacer.

2) Sélectionnez 'Search Mode' «Expression régulière»

3) 'Find What' Type ^(\s*)(.*)(\s*)$et dans 'Remplacer par' Type\2

  • ^ - Correspond au début du caractère de ligne
  • (\s*) - Correspond aux caractères d'espace vide
  • (.*) - Correspond à tous les caractères
  • (\s*) - Correspond aux caractères des espaces vides
  • $ - Correspond au caractère de fin de ligne
  • \2 - Indique la correspondance correspondante du 2ème support

entrez la description de l'image ici Consultez https://www.rexegg.com/regex-quickstart.html pour en savoir plus sur regex.

Praboda
la source
4
  1. Édition >> Opérations vides >> Couper les espaces de début et de fin (pour supprimer les tabulations noires et les espaces dans les lignes vides)
  2. Ctrl+ Hpour obtenir la fenêtre de remplacement et remplacer le modèle: ^\r\navec rien (sélectionnez l'expression régulière)

Remarque: l' étape 1 supprimera votre intention de code effectuée via des tabulations et des espaces vides

Adeeb
la source
4

CTRL + A, sélectionnez le menu TextFX -> TextFX Edit -> Delete Blank Lines comme suggéré ci-dessus fonctionne.

Mais si les lignes contiennent de l'espace, déplacez le curseur sur cette ligne et effectuez une CTRL + H. La section "Find what:" affichera l'espace vide et dans la section "Replace with", laissez-le vide. Maintenant, tous les espaces sont supprimés et essayez maintenant CTRL + A, sélectionnez le menu TextFX -> TextFX Edit -> Delete Blank Lines


la source
4

/n/rsuppose un type spécifique de saut de ligne. Pour cibler n'importe quelle ligne vierge, vous pouvez également utiliser:

^$

Cela dit - toute ligne qui commence et se termine sans rien entre. C'est plus un fourre-tout. Remplacez par la même chaîne vide.

AshBrad
la source
3

Je n'ai pas vu la réponse combinée comme réponse, alors recherchez ^ \ s + $ et remplacez par {rien}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line
user2056154
la source
si vous voulez plusieurs lignes, vous pouvez essayer: ^\s+^(\S)et remplacer par \1.
jiggunjer
2

C'est très simple

ctrl + H

Rechercher: \ r \ n \ r \ n

Répliquez avec: \ r \ n

Voir Snap

Pragnesh Bhalodiya
la source
1

Une alternative simple pour supprimer les espaces blancs des lignes vides:

  1. TextFX> TextFX Edit> Trim Trailing Spaces

Cela supprimera tous les espaces de fin, y compris les espaces de fin dans les lignes vides. Assurez-vous qu'aucun espace de fin n'est significatif.

poisson
la source
0

Quelques-unes des expressions ci-dessus et des expressions étendues ne fonctionnaient pas pour moi, mais l'expression régulière "$ \ n $" fonctionnait.

Chris
la source
0

ce travail pour moi:

SEARCH:^\r  
REPLACE:            (empty)
Rafael Marques
la source
1
Cela ne fonctionnera pas pour linux eol \net windows eol\r\n
Toto