Come posso eliminare tutto dopo la prima colonna in Notepad ++?


40

Sto cercando di sbarazzarmi di tutto dopo una colonna in Notepad ++. La modalità colonna non è un'opzione. È possibile?

Quello che ho:

70.97.110.40    159 ms          [n/a]                   21              
70.97.117.177   134 ms          [n/a]                   21              
70.97.120.10    75 ms           [n/a]                   21              
70.97.122.105   87 ms           www.portless.net        21              
70.97.122.106   89 ms           www.popovetsky.org      21              
70.97.122.107   95 ms           www.psmythe.net         21              
70.97.122.104   98 ms           wasabi.prostructure.com 21              
70.97.122.108   89 ms           crm.prostructure.com    21              
70.97.122.109   87 ms           internal.prostructure.com21 

Quello che voglio:

70.97.110.40
70.97.117.177
70.97.120.10
70.97.122.105
70.97.122.106
70.97.122.107
70.97.122.104
70.97.122.108
70.97.122.109

2
Le colonne sono separate da tabulazione?
Eccellente il

3
Un'altra domanda: i dati che vuoi conservare includono mai uno spazio?
Eccellente il

1
no, ho solo bisogno dell'ip
Bob J

20
Perché vuoi farlo in notepad ++? Perché la modalità colonna non è un'opzione?
Kamil,

1
È possibile utilizzare la modalità colonna per eliminare la seconda colonna nell'EOL, quindi utilizzare il Trailing Trim e salvare per eliminare lo spazio bianco.
Casey Kuball,

Risposte:


60

Se i dati nella prima colonna non contengono mai uno spazio, è possibile utilizzare un'espressione regolare trova e sostituisci per ottenere ciò che desideri.

In modalità espressione regolare, cerca:

^([^ ]*).*

E sostituisci con

\1

Cosa fa questo:

^indica che qualsiasi corrispondenza deve iniziare all'inizio di una riga.
([^ ]*)è qualsiasi espressione che non contiene uno spazio. La partita è golosa, quindi corrisponderà a tutto fino al primo spazio (o alla fine della linea, a seconda di quale si verifichi per prima).
.*è tutto il resto sulla linea.

\1si riferisce alla parte della partita tra parentesi. Cioè, l'intera riga viene sostituita solo dal bit della prima colonna.


5
Bello sapere che notepad ++ supporta le espressioni regolari in cerca-sostituisci!
Kamil,

1
Regex farà il lavoro per te finché i dati non contengono mai uno spazio. Più semplice sarebbe il comando "taglia" di UNIX, ma eseguire i comandi UNIX sotto Windows è un altro problema. cut è fatto per questo ed elabora rapidamente file di grandi dimensioni, con delimitatori di colonna definiti o conteggi dei caratteri.
Karl,

31
Questo può essere fatto molto più semplicemente: sostituisci ". *" (Nota lo spazio iniziale) con "" (cioè niente) per eliminare tutto dopo e incluso il primo spazio.
Fraxtil,

2
@Fraxtil Grazie. Dovresti pubblicarlo come risposta. Otterrai un mio voto.
Eccellente il

@Excellll va bene, fatto.
Fraxtil,

99

Ecco un'espressione regolare più semplice che puoi usare per ottenere lo stesso effetto. Sostituire

 .*

(nota lo spazio iniziale)

con niente. Questo eliminerà tutto dopo e includendo il primo spazio. Funzionerà finché i tuoi indirizzi IP non saranno mai preceduti da spazi bianchi (come nel tuo esempio).


8
Amico, regex è pura magia. Non credo che ci
riuscirò

14
Assicurati di avere la bandiera. partita newline è disattivata.
Taemyr,

3
Nel caso in cui sia potenzialmente una scheda anziché uno spazio, puoi usare[ \t].*
Cornstalks il

4
@Cornstalks \s.*è più corto. Forse anche usare \s+.*, per abbinare una quantità arbitraria di spazi bianchi, ora che stiamo programmando in modo difensivo .
Anko,

1
@ jpmc26 finché non dici "regex" e "semplice" in una frase :)
Torben Gundtofte-Bruun,

39

Se stai usando Windows e se non ti dispiace spazi finali (puoi trovarli / sostituirli in seguito), usa la funzione Seleziona blocco :

  1. Tenere premuto il Alttasto
  2. Usando il mouse, seleziona la porzione da eliminare (l'intero blocco di testo)
  3. Rilasciare il Alt chiave
  4. Elimina quel blocco di testo
  5. Ripetere se necessario

Dovrebbe essere la chiave "-" negativa?
Dracs,

Siamo spiacenti, ho usato le parentesi LT e GT attorno al tasto 'alt'. Riparato ora.
Reed Shilts,

10
Puoi cambiarlo in <kdb> Alt </kbd> e formattarlo come chiave.
Dracs,

Uso Blocco note da sempre .... e non ho mai saputo che questa funzione esistesse! 1 Bazillion +1 !!!!!

1
L'OP ha dichiarato: "La modalità colonna non è un'opzione"
Peter Mortensen,

11

Un'espressione regolare è più veloce, ma è possibile fare alcune cose davvero difficili con le macro se si tratta di un compito più complicato.

È possibile registrare una macro:

  1. Cursore sulla linea 1
  2. Hit Inizia la registrazione
  3. Premere il tasto home
  4. Tieni Ctrlpremuto mentre premi il tastoRight arrow (sette volte)
  5. Tieni Shiftpremuto mentre premi il tastoEnd
  6. Premere il tasto Delete
  7. Premere il tasto Down arrow
  8. Colpire Stop recording

Quindi riproducilo:

  1. Premi "Esegui una macro più volte"
  2. Digitare le righe del documento meno 1, poiché la prima riga è completa.

9

Posiziona il cursore dopo 70.97.110.40.

Posiziona il cursore

Premere Alte trascinare il cursore verso destra e verso il basso per selezionare la parte indesiderata.

Selezionare

Premere Backspaceo Delete.

Elimina


1
Per tutto questo tempo usando Notepad ++ e non ho mai saputo che avesse un "Block Select Mode" come TextPad.
Kev

@Kev: funziona allo stesso modo in Visual Studio.
Peter Mortensen,

1
L'OP ha dichiarato: "La modalità colonna non è un'opzione"
Peter Mortensen,

@PeterMortensen - re: VS - inferno, lo uso dal 2002 e non lo sapevo nemmeno!
Kev,

8

Ecco un paio di metodi alternativi per la risposta data.

Se i tuoi dati lo sono fixed width, puoi anche usare la seguente espressione regolare nella ricerca:

Trovare cosa: ^(.{16}).*$

Sostituirlo con: \1

È fantastico se i dati che vuoi conservare contengono uno spazio, come qualcuno ha menzionato. Inoltre, sempre per i dati a larghezza fissa, è possibile utilizzare Column Mode Editing. È una piccola funzionalità che ti consente di modificare più righe di dati nella stessa posizione della colonna. Vedi Modifica modalità colonna .

Fa menzione dei tasti freccia, ma puoi anche usarli Page Up/Downper un metodo più veloce, così come i tasti Ende Home. Anche il mouse funziona. Ma potresti usarlo per un metodo ad hoc per cancellare i dati dopo un certo punto, specialmente se si tratta solo di poche righe. È anche utile per copiare i dati, ma il modo in cui li incolla è un po 'strano, quindi ti consigliamo di abituarti prima a quello.


1
Meglio che selezionarlo e sostituirlo con se stesso sarebbe usare un lookbehind come: (? <= ^. {13}). * E sostituirlo con niente. Questo selezionerà qualsiasi cosa dopo i primi 13 caratteri.
Chris Murray,

4

Simile a enthdegree:

  1. Posiziona il cursore sulla colonna 16
  2. Shift+ Alt+Page Down
  3. Shift+ Alt+End
  4. Delete

Se alla fine del file è presente una riga vuota, è sufficiente premere Up Arrowprima di # 3.

Non è perfetto, ma è utile.


4
  1. Premere ALTmentre si utilizza il mouse come lazo.
  2. Seleziona tutto ciò che desideri rimuovere
  3. stampa DELETE

Supponendo che la prima colonna sia allineata correttamente, come gli indirizzi IP, questo è il modo più rapido.
bgStack15,

L'OP ha dichiarato: "La modalità colonna non è un'opzione"
Peter Mortensen,

3

Ecco un modo visivo:

  • Posiziona il cursore alla fine di un indirizzo IP.
  • Alt+ Shift+Pg Down
  • Alt+ Shift+Right
  • Delete

Questo non è "basato su colonna". Funziona solo perché i tuoi indirizzi IP sono tutti allineati.


1
Cosa intendi con "Questo non è basato su colonne". Alt + Maiusc + Freccia passa alla "modalità colonna".
MrWhite,

Non rispetta la delimitazione di tabulazione come colonna. Li divide in spazi in modo che ogni riga nella selezione abbia lo stesso numero di caratteri oltre il bordo del punto iniziale della selezione.
enthdegree

1

In modalità espressione regolare, cerca:

\ T. *

E sostituisci con

Niente


Puoi aggiungere una o due frasi per spiegare cosa fa? Grazie.
Fixer 1234

1
Stack Exchange converte le schede in spazi durante la visualizzazione, ma anche in modalità di modifica, l'esempio non mostra alcuna scheda.
Arjan,

0

Elimina tutto dopo la prima colonna in Notepad ++:

  1. Seleziona la seconda colonna: Alt+ Trascina
  2. Per selezionare le colonne rimanenti: premere semplicemente Right Arrow
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.