Como posso excluir tudo após a primeira coluna no Notepad ++?


40

Estou tentando me livrar de tudo depois de uma coluna no Notepad ++. O modo de coluna não é uma opção. É possível?

O que eu tenho:

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 

O que eu quero:

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
As colunas estão separadas por tabulação?
Excellll 19/08/14

3
Mais uma pergunta: os dados que você deseja manter incluem um espaço?
Excellll

11
não, eu só preciso dos ips #
J Bob

20
Por que você quer fazer isso no bloco de notas ++? Por que o modo de coluna não é uma opção?
Kamil

11
Você pode usar o modo de coluna para excluir a segunda coluna no EOL e, em seguida, usar o Trim Trailing e salvar para se livrar do espaço em branco.
Casey Kuball

Respostas:


60

Se os dados na primeira coluna nunca contiverem um espaço, você poderá usar uma expressão regular localizar e substituir para obter o que deseja.

No modo de expressão regular, procure por:

^([^ ]*).*

E substitua por

\1

O que isso faz:

^indica que qualquer correspondência deve começar no início de uma linha.
([^ ]*)é qualquer expressão que não contém um espaço. A partida é gananciosa, portanto, ela corresponderá a tudo, até o primeiro espaço (ou o final da linha, o que ocorrer primeiro).
.*é tudo o mais na linha.

\1refere-se à parte da partida entre parênteses. Ou seja, a linha inteira é substituída apenas pelo bit da primeira coluna.


5
É bom saber que o notepad ++ suporta expressões regulares na busca e substituição!
Kamil

11
O Regex fará o trabalho para você desde que os dados nunca contenham espaço. Mais simples seria o comando 'cut' do UNIX, mas executar comandos do UNIX no Windows é um problema totalmente diferente. é feito um corte para isso e processa arquivos grandes rapidamente, com delimitadores de coluna definidos ou por contagem de caracteres.
Karl

31
Isso pode ser feito de maneira muito mais simples: substitua ". *" (Observe o espaço à esquerda) por "" (ou seja, nada) para excluir tudo depois e incluindo o primeiro espaço.
Fraxtil

2
@ Obrigado Fraxtil. Você deve postar isso como resposta. Você receberá um voto positivo de mim.
Excellll 19/08/14

@Excellll tudo bem, feito.
Fraxtil

99

Aqui está uma expressão regular mais simples que você pode usar para obter o mesmo efeito. Substituir

 .*

(observe o espaço à esquerda)

com nada. Isso excluirá tudo depois e incluindo o primeiro espaço. Isso funcionará desde que seus endereços IP nunca sejam prefixados com nenhum espaço em branco (como é o caso no seu exemplo).


8
Cara, regex é pura magia. Eu não acho que nunca vou Grokar it :)
Torben Gundtofte-Bruun

14
Certifique-se de que a bandeira tenha. a correspondência de novas linhas está desativada.
Taemyr 20/08/14

3
No caso, é, potencialmente, uma página em vez de um espaço, você pode usar[ \t].*
Cornstalks

4
@Cornstalks \s.*é mais curto. Talvez até use \s+.*, para combinar com uma quantidade arbitrária de espaço em branco, agora que estamos codificando na defensiva .
Anko

11
@ jpmc26 contanto que você não diga "regex" e "simples" em uma frase :)
Torben Gundtofte-Bruun

39

Se você estiver usando o Windows e se não se importar com espaços à direita (poderá encontrá-los / substituí-los posteriormente), use o recurso Seleção de bloco :

  1. Pressione e segure a Alttecla
  2. Usando o mouse, selecione a parte a ser excluída (todo o bloco de texto)
  3. Solte a Alttecla
  4. Excluir esse bloco de texto
  5. Repita conforme necessário

Essa deveria ser a chave "-" negativa?
Dracs

Desculpe - usei colchetes LT e GT em torno da tecla 'alt'. Corrigido agora.
Reed Shilts

10
Você pode alterá-lo para <kdb> Alt </kbd> e ele será formatado como uma chave.
Dracs

Eu uso o Bloco de Notas desde sempre ... e nunca soube que esse recurso existia! 1 bilhão +1 !!!!!

11
O OP disse: "O modo de coluna não é uma opção"
Peter Mortensen

11

Uma expressão regular é mais rápida, mas você pode fazer algumas coisas realmente complicadas com macros se for uma tarefa mais complicada.

Você pode gravar uma macro:

  1. Cursor na linha 1
  2. Clique em Iniciar gravação
  3. Pressione a tecla home
  4. Mantenha Ctrlpressionado enquanto pressiona a tecla Right arrow(sete vezes)
  5. Mantenha Shiftpressionado enquanto pressiona a teclaEnd
  6. pressione a tecla Delete
  7. pressione a tecla Down arrow
  8. Acertar Stop recording

Em seguida, reproduza-o:

  1. Clique em "Executar uma macro várias vezes"
  2. Digite as linhas do documento menos 1, pois a primeira linha está completa.

9

Coloque o cursor depois 70.97.110.40.

Coloque o cursor

Pressione Alte arraste o cursor para a direita e para baixo para selecionar a parte indesejada.

Selecione

Pressione Backspaceou Delete.

Excluir


11
Todo esse tempo usando o Notepad ++ e eu nunca soube que ele tinha um "Modo de seleção de bloco" como o TextPad.
Kev

@ Kev: funciona da mesma maneira no Visual Studio.
Peter Mortensen

11
O OP disse: "O modo de coluna não é uma opção"
Peter Mortensen

@ PeterMortensen - re: VS - inferno, estou usando isso desde 2002 e nem sabia!
Kev

8

Aqui estão alguns métodos alternativos para a resposta dada.

Se você tiver dados fixed width, também poderá usar a seguinte expressão regular na pesquisa:

Encontre o que: ^(.{16}).*$

Substituir com: \1

É ótimo se os dados que você deseja manter contiverem um espaço, como alguém mencionado. Além disso, novamente para dados de largura fixa, você pode usar Column Mode Editing. É um pequeno recurso interessante que permite editar várias linhas de dados no mesmo local da coluna. Consulte Edição no modo de coluna .

Ele menciona as teclas de seta, mas você também pode usar Page Up/Downum método mais rápido, bem como as teclas Ende Home. O mouse também funciona. Mas você pode usar isso para um método ad hoc de excluir dados após um determinado ponto, especialmente se houver apenas algumas linhas. Também é bom para copiar dados, mas a maneira como eles são colados é um pouco estranha, então você deve se acostumar com isso primeiro.


11
Melhor do que selecioná-lo e substituí-lo por si mesmo, seria usar um lookbehind como: (? <= ^. {13}). * E substituí-lo por nada. Isso selecionará qualquer coisa após os 13 primeiros caracteres.
Chris Murray

4

Semelhante ao entusiasmo:

  1. Coloque o cursor na coluna 16
  2. Shift+ Alt+Page Down
  3. Shift+ Alt+End
  4. Delete

Se houver uma linha em branco no final do arquivo, basta pressionar Up Arrowantes de # 3.

Não é perfeito, mas é útil.


4
  1. Pressione ALTenquanto estiver usando o mouse como laço.
  2. Selecione tudo que você deseja remover
  3. pressione DELETE

Supondo que a primeira coluna esteja alinhada, como endereços IP, essa é a maneira mais rápida.
bgStack15

O OP disse: "modo coluna não é uma opção"
Peter Mortensen

3

Aqui está uma maneira visual:

  • Coloque o cursor no final de um endereço IP.
  • Alt+ Shift+Pg Down
  • Alt+ Shift+Right
  • Delete

Isso não é 'baseado em coluna'. Só funciona porque todos os seus endereços IP estão alinhados.


11
O que você quer dizer com "Isso não é 'baseado em coluna'"? Alt + Shift + Seta muda para o "modo de coluna".
MrWhite

Não respeita o delimitação de tabulação como uma coluna. Ele os divide em espaços para que cada linha na seleção tenha o mesmo número de caracteres além da borda do ponto inicial da seleção.
enthdegree

1

No modo de expressão regular, procure por:

\ t. *

E substitua por

Nada


Você pode adicionar uma ou duas frases para explicar o que isso faz? Obrigado.
fixer1234

11
O Stack Exchange converte guias em espaços enquanto exibe, mas mesmo no modo de edição, o exemplo não mostra nenhuma guia.
Arjan #

0

Exclua tudo após a primeira coluna no Notepad ++:

  1. Selecione a segunda coluna: Alt+ Arraste
  2. Para selecionar as colunas restantes: basta pressionar Right Arrow
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.