Rimozione di righe vuote in Notepad ++


384

Come posso sostituire le righe vuote in Notepad ++? Ho provato a trovare e sostituire con le righe vuote nella ricerca e nulla nella sostituzione, ma non ha funzionato; probabilmente ha bisogno di regex.

Risposte:


395

Hai bisogno di qualcosa come un'espressione regolare.

Devi essere in Extendedmodalità

Se vuoi che tutte le linee finiscano su una sola linea, usa \r\n. Se vuoi semplicemente rimuovere le righe vuote , usa \n\rcome suggerito inizialmente @Link.

Sostituisci entrambe le espressioni con niente.


21
Dovrebbe prima selezionare 'esteso' in modalità di ricerca.
q0987,

14
Per non unire le tue linee devi cercare \r\n\r\ne sostituire con \r\n.
Robert Kaucher,

1
Vedi il commento di @ BoltClock qui sotto. Inoltre, se il file viene salvato con terminazioni di linea Unix, è possibile convertirlo in terminazioni di linea di Windows in Modifica> Conversione EOL> Formato Windows prima di eseguire la ricerca e la sostituzione.
Big McLarge: enorme

9
Se desideri rimuovere le righe con solo spazi e tabulazioni o niente, prova a utilizzare regex sostituisci per abbinare \r\n\W*\r\ne sostituire con\r\n
Myster

2
@ ST3 hmm cosa stavo pensando, questo è molto meglio: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+e sostituiscilo con \r\nvederlo in azione qui: regex101.com/r/qD9dB1/1
Myster

567

Ora esiste un modo integrato per farlo a partire dalla versione 6.5.2

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

Schermata di rimozione di righe vuote


Sfortunatamente questo non considera la tua selezione, eliminerà tutte le righe vuote nel file anche se ne hai selezionate solo alcune.
Fabio dice Reintegrare Monica l'

Se si tratta di un'operazione una tantum, è possibile estrarre le righe selezionate nella nuova scheda Notepad ++ ed eseguire tale operazione lì. Procedura copia-incolla per 5 secondi. Qualsiasi altra soluzione che non può essere realizzata in quel momento è uno spreco secondo me. Ma se lo fai ogni giorno 100 volte ...
credo il

Stavo usando questo (anche assegnato il mio collegamento), ma è molto più lento dell'opzione sopra, quindi usa in modo intelligente ...
Betlista,

122

C'è un plugin che aggiunge un menu intitolato TextFX. Questo menu, che ospita una serie vertiginosa di opzioni di modifica rapida del testo, consente a una persona di apportare modifiche rapide alla codifica. In questo menu, è possibile trovare selezioni come Rilascia virgolette, Elimina righe vuote, nonché Scartare e Riavvolgere testo

Fare quanto segue:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines

7
Non sono sicuro di quando, ma sembra che questo plugin sia installato di default ora. Leggermente fuori tema, ma una delle altre funzioni incredibilmente utili, sotto TextFX > TextFX Tools, è l'ordinamento delle linee, che facoltativamente rimuove i duplicati. Modo molto pratico di fare un Unix sort -usu una scatola di Windows senza cygwin o unxutils o simili.
Cam Jackson,

3
Ecco un link al plugin TextFx. L'ho trovato molto utile. Usa: Settings > Import > plugin...e trova il file dll per installarlo. Diventa una voce di menu diPlugins
Nicholas Pickering il

1
funzionerà su tutti i documenti aperti o un documento alla volta?
Abbandonato

76
  1. notepad ++
  2. Ctrl-H
  3. Seleziona Espressione regolare
  4. Entra ^[ \t]*$\r?\nper trovare cosa, lascia sostituire vuoto. Questo corrisponderà a tutte le righe che iniziano con uno spazio bianco e terminano con il ritorno a capo (in questo caso un windows crlf)
  5. Fai clic sul pulsante Trova successivo per vedere come corrisponde solo a righe vuote.

1
Ho dovuto usare questo metodo invece di alcuni altri metodi per farlo funzionare facilmente in una macro. Grazie.
Mafu Josh,

5
sostituzioni ancora più brevi e anche meno necessarie a causa di più righe vuote verranno sostituite contemporaneamente: ^ \ s * $ \ r? \ n
njank

31
  1. Premere ctrl + h (scelta rapida per sostituire).
  2. Nella zona Trova , digitare ^\R(per le righe vuote esatte) o ^\h*\R(solo per le righe vuote con spazi).
  3. Lascia vuota la zona Sostituisci con .
  4. Seleziona l' opzione Avvolgi .
  5. Seleziona la modalità di ricerca delle espressioni regolari .
  6. Fai clic sul pulsante Sostituisci tutto .

inserisci qui la descrizione dell'immagine


1
Questo ha funzionato per me senza problemi o impostazioni aggiuntive da modificare. Grazie!
Bonez024,

19

Puoi seguire la tecnica come mostrato nello screenshot seguente:

  • Trovare cosa: ^\r\n
  • Sostituirlo con: keep this empty
  • Modalità di ricerca: Regular expression
  • Involucro: selezionato

inserisci qui la descrizione dell'immagine

NOTA: per i file * nix basta trovare\n


17

Questo ha funzionato per me:

  1. Premere ctrl + h(collegamento per sostituire)
  2. Scrivi una delle seguenti regex nella find whatcasella. [\n\r]+$o^[\n\r]+
  3. Lasciare la Replace withcasella vuota
  4. In Search Mode, selezionareRegex
  5. Fai clic su Replace All

    Fine!

Questa è l'unica soluzione che non ha rovinato i miei enormi file .csv. Grazie!
Vego

1
più uno perché finalmente conosco la scorciatoia per sostituire
MrGreen

14

Nel blocco note ++ premi CTRL + H, nella modalità di ricerca fai clic sul pulsante di opzione "Esteso (\ n, \ r, \ t ...)" quindi digita la casella "Trova cosa": \ r \ n (abbreviazione di CR LF ) e lasciare vuota la casella "Sostituisci con".

Finalmente colpito sostituisci tutto


in realtà, l'ho provato, vedi i miei chiarimenti nella mia risposta. Eri su qualcosa!
Brad,

3
Ciò presuppone che le terminazioni di linea siano Windows (CRLF), tuttavia, se il file viene salvato con le terminazioni di linea Unix, cercare solo \n.
BoltClock

@Brad: ho scritto tra il () "abbreviazione di CR LF", non volevo che codetrek pensasse che \ n fosse CR, quindi la modifica.
Bassem,

Risposta errata, mette tutte le righe in una riga.
m0skit0,

12

Beh, non sono sicuro della regex o della tua situazione ..

Che ne dici di CTRL + A, seleziona il menu TextFX -> Modifica TextFX -> Elimina le righe vuote e viola tutte le righe vuote.

Una nota a margine: se la linea è vuota, cioè non contiene spazi, funzionerà


12

Puoi cercare la seguente regex: ^(?:[\t ]*(?:\r?\n|\r))+e sostituirla con un campo vuoto


11

Ctrl + H.

trova - \ r \ r sostituisci con - \ r.


Questo funziona per me, rimuovendo la linea extra, nel senso di trovare double \ r sostituisci con single \ r. Grazie!!
genpet,

Questo ha funzionato bene, tuttavia ho scoperto che dovevo eseguirlo più volte nel mio documento prima che tutte le istanze di sparissero. Non sono sicuro del perché.
Hawkwing,

7

Questo ovviamente non funziona se le righe vuote contengono schede o spazi vuoti. Molte pagine Web (ad es. Http://www.guardian.co.uk/ ) contengono queste righe bianche, a causa di un editor HTML difettoso.

Rimuovere lo spazio bianco usando l'espressione regolare come segue:

cambia modello: [\ t] + $ in nulla.

dove [\ t] corrisponde a tab o spazio. '+' corrisponde a una o più occorrenze e '$' segna la fine della riga.

Quindi utilizzare notepad ++ / textFX per rimuovere le righe vuote singole o extra. Assicurarsi che queste righe vuote non siano significative nel contesto dato.


5

inserisci qui la descrizione dell'immagine

A volte \ n \ r etc non funziona, qui per capire, quale dovrebbe essere la tua espressione regolare.

Vantaggio di questo trucco: se si desidera sostituire più file contemporaneamente, è necessario questo metodo. Sopra non funzionerà ...


5

1) Ctrl + H(O Search 🠆 Replace..) per aprire la finestra Sostituisci.

2) Seleziona 'Search Mode' "Espressione regolare"

3) In "Trova" digitare ^(\s*)(.*)(\s*)$e in 'Sostituisci con' tipo\2

  • ^ - Corrisponde all'inizio del carattere di linea
  • (\s*) - Corrisponde ai caratteri dello spazio vuoto
  • (.*) - Abbina qualsiasi personaggio
  • (\s*) - Corrisponde ai caratteri degli spazi vuoti
  • $ - Corrisponde al carattere di fine riga
  • \2 - Indica la contesa corrispondente della seconda parentesi

inserisci qui la descrizione dell'immagine Consultare https://www.rexegg.com/regex-quickstart.html per ulteriori informazioni su regex.


4
  1. Modifica >> Operazioni in bianco >> Taglia spazi iniziali e finali (per rimuovere le schede e gli spazi neri in righe vuote)
  2. Ctrl+ Hper sostituire la finestra e sostituire il modello: ^\r\ncon niente (selezionare l'espressione regolare)

Nota: il passaggio 1 rimuoverà l'intenzione del codice effettuata tramite schede e spazi vuoti


4

CTRL + A, selezionare il menu TextFX -> Modifica TextFX -> Elimina righe vuote come suggerito sopra funziona.

Ma se le linee contengono dello spazio, sposta il cursore su quella linea e fai un CTRL + H. Il secondo "Trova cosa:" mostrerà lo spazio vuoto e nella sezione "Sostituisci con", lascialo vuoto. Ora tutti gli spazi vengono rimossi e ora prova CTRL + A, seleziona il menu TextFX -> Modifica TextFX -> Elimina righe vuote


4

/n/rpresuppone un tipo specifico di interruzione di riga. Per targetizzare qualsiasi linea vuota puoi anche usare:

^$

Questo dice: qualsiasi linea che inizia e poi finisce senza nulla in mezzo. Questo è più che altro. Sostituisci con la stessa stringa vuota.


3

Non ho visto quello combinato come risposta, quindi cerca ^ \ s + $ e sostituiscilo con {nothing}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line

se vuoi più righe puoi provare: ^\s+^(\S)e sostituire con \1.
jiggunjer,


1

Un'alternativa semplice per rimuovere lo spazio bianco da linee vuote:

  1. TextFX> Modifica TextFX> Taglia spazi di trascinamento

Ciò rimuoverà tutti gli spazi finali, compresi gli spazi finali in righe vuote. Assicurarsi che nessuno spazio finale sia significativo.


0

Alcune delle espressioni precedenti ed estese non funzionavano per me, ma l'espressione regolare "$ \ n $" ha funzionato.


0

questo lavoro per me:

SEARCH:^\r  
REPLACE:            (empty)

1
Questo non funzionerà per linux eol \ne windows eol\r\n
Toto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.