Como adiciono um número no final de cada linha no Notepad ++?

37

Eu tenho 23.000 linhas e preciso adicionar o número 1no final de cada linha.

Como posso fazer isso?

Agora mesmo:

[line1]TEXT
[line2]TEXT

O que eu gostaria:

[line1]TEXT1
[line2]TEXT1
falsky
fonte
2
Mais interessante; como você atribuiria números sequenciais a linhas seqüenciais? :-)
Carl Witthoft
1
@CarlWitthoft Numere as linhas com o pacote TextFX (TextFx> Ferramentas TextFx> Inserir números de linha) e mova os números de linha para o EOL com uma regexp.
DavidPostill
2
Se houver uma linha vazia entre duas linhas de texto, essa linha também deve receber 1?
Nzall 20/07
4
:%s/$/1/. Oh espere, esse é o Vim . ;-) (que é disponível para Windows também.)
DevSolar
1
@DevSolar Como alternativa :g/$/norm A1,. Ou o mais complexo, mas mais sofisticado gg$<C-v>G$A1<esc>. Ou mesmo os reconhecidamente desagradáveis ggqqqqqA1<esc>j@qq@q. Mais do que uma maneira de fazê-lo: P
Doorknob

Respostas:

28

Como adiciono um número no final de cada linha no Notepad ++?

  • Menu "Pesquisar"> "Substituir" (ou Ctrl+ H)

  • Defina "Encontre o que" para \r\n

  • Defina "Substituir por" para 1\r\n

  • Ative "Expressão regular" ou "Estendido"

    Nota - "Expressão regular" é um superconjunto de "Estendido", portanto, nesse caso em particular, não importa qual você usar.

  • Clique em "Substituir tudo"

Digite a descrição da imagem aqui

Notas:

  • O texto acima pressupõe que você esteja editando um arquivo de texto com EOLs do Windows \r\n,.

  • Se você estiver usando arquivos com EOLs diferentes, poderá convertê-los em EOLs do Windows usando o Menu "Editar"> "Conversão de EOLs".

  • Se você não está trabalhando com o Windows EOL e não deseja convertê-los, use o seguinte:

    • Use em \nvez de \r\npara EOLs do Unix / OS X ("Localizar o que é \n", "Substituir por" é 1\n))

    • Use em \rvez de \r\npara EOLs do Mac OS (até a versão 9) ("Localizar o que é \r", "Substituir por" é 1\r))


Leitura adicional

DavidPostill
fonte
Isso funciona apenas se o delimitador de linha for windows, \ r \ n.
Zaheylu
4
Sim, mas o Notepad ++ é um programa do Windows ...;)
DavidPostill
5
Oh você está certo ... :) Ainda assim, o arquivo de texto poderia ter outra linha que termina codificação;)
Zaheylu
5
Se você não estiver trabalhando com o EOL do Windows, não há razão para "convertê-los" ... basta usar \nou \ralternar (EOLs do Unix e Mac, respectivamente). \n=> 1\nou \r=> 1\r. Faço esse tipo de coisa com mais frequência com o Extended, em vez do Regex, pessoalmente.
WernerCD
2
@WernerCD Note-se que um único \rsó se aplica ao Mac OS extinto. Não é o OS X, que usa \n.
20915 Bob
19

Outra opção é o recurso de gravação e reprodução.

  1. Com o cursor na primeira linha, clique em 'Iniciar gravação'
  2. Digite End, 1,
  3. Clique em 'Parar gravação'
  4. Clique em 'Executar uma macro várias vezes ...'
  5. Selecione 'Executar até o final do arquivo' e clique em Executar
  6. Tarefa concluída

Screenshots

gravação e reprodução

Digite End, 1,

Clique em parar

Executar macro

insira a descrição da imagem aqui

Feito

Denham Coote
fonte
9
As macros do Notepad ++ nunca recebem amor suficiente.
Armani
15

Resposta atualizada:

Pressione Ctrl+ Hpara abrir a caixa de diálogo Substituir.

No modo de pesquisa, marque Expressão regular.

Find what: $

Replace with: 1

E bateu Replace all


Resposta original

Pressione Ctrl+ Hpara abrir a caixa de diálogo Substituir.

No modo de pesquisa, marque Regular Expression.

Encontre o que: ^.*$

Substituir com ($0)1

E bateu Replace all

Explicação

Você está procurando a expressão regular ^.*$, que é essencialmente todas as linhas. ^marca o início de uma linha, .*inclui qualquer caractere qualquer número de vezes e $marca o final da linha. Portanto, essa expressão regular encontra todo o conteúdo em todas as linhas.

Substituímos esta expressão por ($0)1, $0sendo a expressão encontrada e anexando a 1a ela.

Zaheylu
fonte
2
Encontre = $e substitua = 1é suficiente.
Salman A
8

Ou faça como os meninos grandes fazem :).

Selecione a última coluna usando Shift + Alt => tecla direita (uma vez) => tecla para baixo (pressione até a última linha).

Digite o que quiser. Aparecerá em todas as linhas de uma só vez.

banavalikar
fonte
Eu ia dizer isso também .. por que toda a complexa expressão de registro? isso responde perfeitamente à pergunta .. e por que a votação negativa? porque alguém simplesmente não entendeu que é uma resposta válida? Oo
Ditto
2
Isso pode não ser prático para 23.000 linhas (muito lentas ou não (problemas de memória devido aos algoritmos de Shlemiel, o pintor ?)). Você já experimentou em 23.000 linhas?
Peter Mortensen
2
@PeterMortensen Horrivelmente lento, mas o uso de memória é bom (5 MB => 25 MB). O problema maior é que ele não parece lidar bem com diferentes comprimentos de linha.
Bob
@Ditto Não pretendo ser um usuário comum, mas isso parece consideravelmente menos intuitivo do que expressões regulares. Então, novamente, xkcd.com/1171
David Z
1
Esta não é uma resposta muito boa; primeiro você precisaria encontrar a linha mais longa; depois, pressionaria até a última linha; ao testar esse método, fiquei entediado depois de algumas dúzias de linhas; não consegui ficar sentado lá por 20k + lines
Aequitas
1

Se houver seqüências de caracteres igualmente longas, mantenha pressionado Alte clique e arraste para bloquear a seleção e poder escrever em várias linhas ao mesmo tempo. Se eles não forem igualmente longos, mas não separados por espaço, você não poderá executar o mesmo procedimento e substituir "" por "".

Viktor Mellgren
fonte
3
Às vezes eu usar esse recurso, mas arrastando para 23.000 linhas ... Não tanto diversão :)
Denham Coote
1

Modo estendido.

Eu queria adicionar uma abordagem um pouco diferente que não é mencionada em outras respostas: Modo Estendido.

Para algo assim - onde tudo que você está preocupado com são \r, \n, \tou outros incluídos no esta pequena lista (embora que parece de página para ser "datado", por isso não 100% de certeza sobre a sua veracidade) há nenhuma razão para ir completo fora regulares expressão.

Eu uso o modo estendido do Notepad ++ "frequentemente" para massagear layouts de arquivos - principalmente centrando-se em remover várias linhas vazias, espaço em branco extra e outras curiosidades variadas.

Estendido

  1. Menu "Pesquisar"> "Substituir" (ou Ctrl+ H)
  2. Determine quais terminações de linha você deseja
  3. Em "Localizar", coloque:
    • \r\n para Windows
    • \r para versões mais antigas do MacOS (9 ou mais antiga)
    • \n para Unix ou mais recente do MacOS (OS X ou mais recente)
  4. Defina "Substituir por" para
    • 1\r\n para Windows
    • 1\r para versões mais antigas do MacOS (9 ou mais antiga)
    • 1\n para Unix ou mais recente do MacOS (OS X ou mais recente)
  5. Ativar "estendido"
  6. Clique em "Substituir tudo"
WernerCD
fonte
"Expressão regular" é um superconjunto de "estendido", portanto, nesse caso em particular, não importa qual deles você usa.
DavidPostill
Não deveria ser \npara o Unix e \rpara a versão mais antiga do MacOS? Primeiro marcador da Wikipedia: en.wikipedia.org/wiki/Newline#Representations
nhahtdh