Come rimuovere ogni riga dispari in Notepad ++?


29

Sto cercando di modificare un documento di 20000 righe. Devo rimuovere ogni riga dispari, ad esempio:

Apple
Monkey
Orange
Lion
fruit
animal

Come posso rimuovere i caratteri di ogni riga dispari nel documento?


cosa intendi per linea dispari? Vuoi dire come rimuovere la parola dispari (indesiderata) dall'intero documento?
antzshrek,

4
Ogni riga dispari come 1,3,5,7,9,11,13,15 .... ecc.
Nithin N,

1
Prova a sostituire con una nuova riga (regexp): [\ n. + \ N]
Art Gertner

@ArtGertner ho provato con l'espressione che non funziona.
Nithin N,

1
Ho registrato una stupida macro: freccia giù, freccia giù, del.
Ching Not Noting

Risposte:


23

Puoi farlo con trova e sostituisci:

  • Apri la finestra di dialogo di sostituzione ( Ctrl+ H)
  • Seleziona "Espressione regolare"
  • Trovare cosa: .+\r\n(.+(\r\n|$))
  • Sostituirlo con:
    $1
  • Premi "Sostituisci tutto"

Gli appunti:

  • A seconda del tuo sistema operativo devi usare \r(vecchio Mac), \n(Unix, OS X) o \r\n(Windows) per abbinare la fine della linea, o semplicemente usare quello \Rche dovrebbe funzionare ovunque (grazie per @Aurel Bílý)
  • \n|$ è necessario per ottenere il risultato corretto anche alla fine del file
  • Per impostazione predefinita, Notepad ++ sostituisce dalla posizione effettiva del cursore alla fine del file. Assicurati di posizionare il cursore all'inizio del file.
    • (Puoi anche selezionare "avvolgi", ma in tal caso eliminerà prima la linea in cui si trova il cursore, invece di cercare davvero una linea dispari.)

Inserisci qui la descrizione dell'immagine


Funziona quasi, ma non sta modificando la prima serie di righe dispari, diciamo da 1 a 15.
Nithin N

Cambia lo screenshot con più transperacy della finestra di sostituzione.
Biswapriyo,

11
Si noti che \rla fine della linea è molto rara: è stata effettivamente utilizzata in Mac OS, ma le versioni classiche pre-OS-X. In OS X e successivi, le terminazioni di linea sono \n, come qualsiasi Unix sano di mente. Inoltre \Rè meglio per abbinare qualsiasi fine linea.
Aurel Bílý,

@ AurelBílý È vero, tuttavia Notepad ++ funziona solo su Windows, quindi la portabilità qui non è un grosso problema.
Rob

18
  • Ctrl+H
  • Trovare cosa: .+\R(.+)
  • Sostituirlo con: $1
  • Replace all

Spiegazione:

.+      : 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
  • Controlla l'espressione regolare
  • NON CONTROLLARE . matches newline

Risultato per un esempio dato:

Monkey
Lion
animal

@NithinN: Sii consapevole del fatto che la risposta accettata non funziona con i file linux (es. Interruzione di riga \n)
Toto

7
  1. Apri il file e posiziona il cursore del testo all'inizio della prima riga.
  2. Menu → MacroAvvia registrazione
  3. Premi il Endtasto sulla tastiera
  4. Shift+ Home, quindibackspace
  5. Down
  6. Backspace
  7. Down
  8. Menu → MacroInterrompi registrazione
  9. Menu → MacroEsegui una macro più volte → Selezionare Esegui fino alla fine del file
  10. Clic Run

Fondamentalmente eseguire l'azione una volta per rimuovere una riga dispari, quindi ottenere il programma per ripetere l'azione fino alla fine del file. Questo può essere usato per risolvere molti problemi!


1

Ho appena controllato il PC del mio collega che attualmente utilizza Notepad ++. Prova questo:

Inserisci qui la descrizione dell'immagine


Mi sembra che questo rimuova le linee pari (2,4,6 ...), non quelle dispari.
Máté Juhász,

1
È corretto. Tuttavia, rimuovere le linee pari è più semplice e il problema può essere risolto aggiungendo una riga vuota all'inizio del file
Art Gertner

@ArtGertner dovrebbe essere \ r \ n. + \ R \ n sostituito con \ r \ n
chingNotCHing

@chingNotCHing, bravo! Ho aggiornato la mia risposta
Art Gertner

@ArtGertner Come hai sottolineato, funziona solo per le linee pari. Ma per un ampio set di dati non sta modificando per il primo set di dati diciamo dalla 1-15a riga.
Nithin N,
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.