Come faccio ad aggiungere un numero alla fine di ogni riga in Notepad ++?


37

Ho 23.000 righe e devo aggiungere il numero 1alla fine di ogni riga.

Come posso fare questo?

Proprio adesso:

[line1]TEXT
[line2]TEXT

Cosa vorrei:

[line1]TEXT1
[line2]TEXT1

2
Più interessante; come assegnereste numeri sequenziali a linee sequenziali? :-)
Carl Witthoft,

1
@CarlWitthoft Numerare le righe con il pacchetto TextFX (TextFx> Strumenti TextFx> Inserisci numeri di riga), quindi spostare i numeri di riga nell'EOL con una regexp.
DavidPostill

2
Se esiste una riga vuota tra 2 righe di testo, anche quella riga dovrebbe ottenere 1?
Nzall,

4
:%s/$/1/. Oh aspetta, quello è Vim . ;-) (che è disponibile anche per Windows).
DevSolar

1
@DevSolar Alternativamente, :g/$/norm A1. O il più complesso ma più elaborato gg$<C-v>G$A1<esc>. O anche il dichiaratamente odioso ggqqqqqA1<esc>j@qq@q. Più di un modo per farlo: P
Doorknob,

Risposte:


28

Come faccio ad aggiungere un numero alla fine di ogni riga in Notepad ++?

  • Menu "Cerca"> "Sostituisci" (o Ctrl+ H)

  • Impostare "Trova cosa" su \r\n

  • Impostare "Sostituisci con" su 1\r\n

  • Abilita "Espressione regolare" o "Esteso"

    Nota: "Espressione regolare" è un superset di "Esteso", quindi in questo caso particolare non importa quale si utilizza.

  • Fai clic su "Sostituisci tutto"

Inserisci qui la descrizione dell'immagine

Gli appunti:

  • Quanto sopra presuppone che si sta modificando un file di testo con EOLs di Windows, \r\n.

  • Se si utilizzano file con EOL diversi, è possibile convertirli in EOL di Windows utilizzando il menu "Modifica"> "Conversione EOL".

  • Se non lavori con Windows EOL e non desideri convertirli, utilizza invece quanto segue:

    • Utilizzare \nanziché \r\nper EOL Unix / OS X ("Trova cosa" è \n, "Sostituisci con" è 1\n)

    • Utilizzare \rinvece \r\nper Mac OS (fino alla versione 9) EOL ("Trova cosa" è \r, "Sostituisci con" è 1\r)


Ulteriori letture


Funziona solo se il delimitatore di riga è windows, \ r \ n.
Zaheylu,

4
Sì, ma Notepad ++ è un programma per Windows ...;)
DavidPostill

5
Oh hai ragione ... :) Tuttavia, il file di testo potrebbe avere altri codici di fine riga;)
Zaheylu

5
Se non stai lavorando con Windows EOL, non c'è motivo di "convertirli" ... usa \no \rinvece (rispettivamente Unix e Mac EOL). \n=> 1\no \r=> 1\r. Faccio questo genere di cose più spesso con Extended anziché Regex personalmente.
WernerCD,

2
@WernerCD Va notato che un singolo \rsi applica solo al Mac OS defunto. Non OS X, che utilizza \n.
Bob,

19

Un'altra opzione è la funzione di registrazione e riproduzione.

  1. Con il cursore sulla prima riga, fai clic su "Avvia registrazione"
  2. Tipo End, 1,
  3. Fai clic su "Interrompi registrazione"
  4. Fai clic su "Esegui una macro più volte ..."
  5. Seleziona "Esegui fino alla fine del file" e fai clic su Esegui
  6. Lavoro fatto

Screenshots

registrare e riprodurre

Tipo End, 1,

Clicca su stop

Esegui macro

inserisci qui la descrizione dell'immagine

Fatto


9
Le macro di Notepad ++ non ottengono mai abbastanza amore.
Armani,

15

Risposta aggiornata:

Premi Ctrl+ Hper aprire la finestra di dialogo Sostituisci.

Nella modalità di ricerca, spunta Espressione regolare.

Find what: $

Replace with: 1

E colpisci Replace all


Risposta originale

Premi Ctrl+ Hper aprire la finestra di dialogo Sostituisci.

Nella modalità di ricerca, spunta Regular Expression.

Trovare cosa: ^.*$

Sostituirlo con ($0)1

E colpisci Replace all

Spiegazione

Stai cercando l'espressione regolare ^.*$, che è essenzialmente ogni riga. ^segna l'inizio di una riga, .*include qualsiasi carattere un numero qualsiasi di volte e $segna la fine della riga. Pertanto, questa espressione regolare trova tutto il contenuto su ogni riga.

Sostituiamo questa espressione con ($0)1, $0essendo l'espressione trovata, e aggiungendola 1a.


2
Trova = $e sostituisci = 1è sufficiente.
Salman,

8

O fallo come fanno i ragazzi grandi :).

Seleziona l'ultima colonna usando Maiusc + Alt => tasto destro (una volta) => tasto giù (premi fino all'ultima riga).

Digita quello che vuoi. Apparirà su tutte le righe contemporaneamente.


Stavo per dire anche questo ... perché tutta la complessa espressione del reg? questo risponde perfettamente alla domanda .. e perché il voto negativo? perché qualcuno non ha capito che è una risposta valida? Oo
Idem il

2
Questo potrebbe non essere pratico per 23.000 linee (troppo lente o meno (problemi di memoria dovuti agli algoritmi di Shlemiel del pittore ?)). L'hai provato su 23.000 righe?
Peter Mortensen,

2
@PeterMortensen Orribilmente lento, ma l'utilizzo della memoria va bene (5 MB => 25 MB). Il problema maggiore è che non sembra far fronte a lunghezze di linea diverse.
Bob,

@Ditto Non pretendo di essere un utente medio, ma questo sembra notevolmente meno intuitivo delle espressioni regolari. Poi di nuovo, xkcd.com/1171
David Z,

1
Questa non è una risposta molto buona, prima di tutto dovresti trovare la linea più lunga, quindi dovrai premere verso il basso fino all'ultima riga, mentre testando questo metodo mi sono annoiato dopo un paio di dozzine di righe, non potevo sedermi lì per 20k + linee
Aequitas,

1

Se sono stringhe ugualmente lunghe, puoi tenere premuto Alte fare clic e trascinare per bloccare selezionare ed essere in grado di scrivere su più righe contemporaneamente. Se non sono ugualmente lunghi, ma non separati da spazio, non è possibile eseguire la stessa procedura e quindi sostituire "" con "".


3
A volte uso questa funzione, ma trascino per 23.000 righe ... Non così divertente :)
Denham Coote

1

Modalità estesa.

Volevo aggiungere un approccio leggermente diverso che non è menzionato in altre risposte: Modalità estesa.

Per qualcosa del genere - dove ti preoccupi \r , \n, \to altri inclusi in questa piccola lista (anche se questo aspetto pagina da "datato", quindi non sicuro al 100% sulla sua veridicità) non v'è alcun motivo di andare pieno fuori regolare espressione.

Uso la modalità estesa di Notepad ++ "spesso" per massaggiare i layout dei file, principalmente concentrandomi su più righe vuote, spazi extra e altre stranezze assortite.

estesa

  1. Menu "Cerca"> "Sostituisci" (o Ctrl+ H)
  2. Determina quali terminazioni di riga desideri
  3. In "Trova cosa" inserisci:
    • \r\n per Windows
    • \r per le versioni precedenti di MacOS (9 o precedenti)
    • \n per Unix o più recente di MacOS (OS X o più recente)
  4. Impostare "Sostituisci con" su
    • 1\r\n per Windows
    • 1\r per le versioni precedenti di MacOS (9 o precedenti)
    • 1\n per Unix o più recente di MacOS (OS X o più recente)
  5. Abilita "Esteso"
  6. Fai clic su "Sostituisci tutto"

"Espressione regolare" è un superset di "esteso", quindi in questo caso particolare non importa quale usi.
DavidPostill

Non dovrebbe essere \nper Unix e \rper la versione precedente di MacOS? Primo proiettile da Wikipedia: en.wikipedia.org/wiki/Newline#Representations
nhahtdh
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.