Respostas:
Existe uma maneira fácil de conseguir isso. Você precisa executar 3 etapas.
Vá para o menu Pesquisar> Localizar ...> Selecione a guia "Marcar". Ative expressões regulares. Procure ^<Path>( ^é para o início da linha). Não se esqueça de marcar "Linhas do marcador" e pressionar "Marcar tudo"
==> Todas as linhas que você deseja manter têm um marcador
Vá para o menu "Pesquisar - Favorito - Favorito inverso"
==> Todas as linhas que você deseja excluir estão marcadas.
Vá para o menu "Pesquisar - Favorito - Remover linhas marcadas"
==> Todas as linhas marcadas são excluídas.
Na verdade, isso pode ser feito em duas etapas a partir da versão 6.3. Eu acho que isso pode ser feito antes disso, como eu tinha 5,9 quando tentei pela primeira vez.
Usando a publicação de stema como base desta resposta. Há um passo a menos agora. Marque linhas e remova linhas não marcadas. Feito. Seguem instruções detalhadas.
Menu de pesquisa "Localizar". Na caixa de diálogo Localizar, clique na guia "Marcar". Ative expressões regulares. Procure ^<Path>( ^é para o início da linha). Não se esqueça de marcar "Linhas do marcador" e pressionar "Marcar tudo"
==> Todas as linhas que você deseja manter agora têm um marcador
Menu Pesquisa -> Favorito -> Remover linhas não marcadas.
==> Todas as linhas não marcadas como marcadas são excluídas.
^termo no meu termo de pesquisa nem usar expressões regulares. Espero que isso ajude alguém.
regex substituir
(?!^.*test.*$)^.+
substitua teste pelo texto solicitado
substituir
[\r\n]{2,}
com \r\n
Use ^(?!<Path>).*\r\npara substituir correspondências por uma sequência vazia. Versão generalizada seria ^(?!.*?test).*\r\n. Isso não removerá a linha vazia no final do arquivo. Todas as outras linhas são removidas, incluindo várias linhas vazias consecutivas.
(?!)é um olhar negativo. ^.*test.*$ seleciona a linha inteira que contém o texto solicitado.
[\r\n]{2,}corresponde a qualquer um \r\nque ocorra mais que uma vez que esta seja a nova linha do Windows. se você possui Linux ou outro sistema operacional, pode ser necessário mexer com isso. o segundo é substituí-lo por uma linha de retorno.
\r\nEOL mencionada na postagem é o que o Windows usa e, portanto, pode ou não ser o que você está procurando. Geralmente, em ambientes Linux, é apenas \n, ou apenas em ambientes Mac \r; portanto, se você extrair um arquivo de qualquer um deles, não será a EOL no estilo Windows. No entanto, se você fizer o download via gatilhos do modo FileZilla e ASCII, ele poderá ser alterado novamente no Windows EOL (como \nem \r\n). Portanto, se o regex não estiver funcionando, verifique o estilo EOL, indo em "Exibir> Mostrar Símbolos> Mostrar Fim da Linha". CR = \r. LF = \n.
Parece-me que a maneira mais fácil é usar o recurso "Localizar tudo no documento atual" e copiar os resultados em um novo arquivo ou selecionar todos e substituir o atual.
Isso encontrará todas as linhas que contêm seu texto e as listará na parte inferior. Basta clicar com o botão direito do mouse no resultado da pesquisa e copiar / colar.
\tLine [\d]*: . Ainda é uma ótima resposta.
Vá para o menu Pesquisar -> Localizar ... -> Ativar expressões regulares. Procure por "^ Path " (^ é para o início da linha).
Clique no botão "Localizar tudo no documento atual".
A janela "Resultado da pesquisa" aparecerá com todas as linhas do padrão. Selecione copiar / colá-los em uma nova guia no Notepad ++.
Nesta nova guia, acesse: menu Pesquisar -> Substituir ... -> Ativar expressões regulares.
No campo "Localizar o que:", use o padrão: "Linha \ d +:". Deixe o campo "Substituir por:" em branco.
Clique no botão "Substituir tudo".
Desde que você realmente deseje corresponder <Path>e não um caminho do sistema de arquivos, você pode tentar isso em uma linha de comando usando o Perl:
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Ele funcionou com o Strawberry Perl no Windows, portanto, ajuste de acordo se os resultados não forem os esperados.
É desajeitado, mas copie tudo para o Excel e use =IF(LEFT(A1,6)="<Path>",A1,"")e copie essa fórmula até o fim. Em seguida, copie isso de volta para o Notepad ++. Não é o ideal, mas é bem fácil (se você tiver o Excel). Aviso: Não funcionará bem com linhas recuadas (o Excel mudará as colunas etc.).
Não há uma maneira fácil de fazer o que você quer com o Notepad ++. Você precisará baixar um programa para o seu computador ou criar um script em VB (presumo que você esteja no Windows).
Você pode fazer o que quiser de duas maneiras com o sed. O utilitário sed é o favorito no * nix e pode ser encontrado no Windows entre as grandes pessoas do GnuWin ( http://gnuwin32.sourceforge.net/packages/sed.htm ). Você faria o download deste programa e executaria seu comando no prompt de comando.
Exclua todas as linhas que não contêm:
sed -i '/^<PATH>/!d' file
Imprima todas as linhas que contêm para um novo arquivo:
sed -n '/^<PATH>/p' file > newfile
Eu sugiro que você use imprimir as linhas que deseja para um novo arquivo. A razão para isso é que você provavelmente não receberá a instrução regex pela primeira vez. O utilitário sed usa a sintaxe básica da expressão regular (consulte a referência em http://www.regular-expressions.info/reference.html ). Se for algo como um caminho * nix (/ var / www), você precisará escapar do caractere / para que seu regex funcione.
Exemplo: sed -n '/^\/var\/www/p' file > newfile
Isso imprimirá todas as linhas que começam com '/ var / www'. Se eu arquivasse para escapar do caractere /, o comando geraria um erro. Você pode escapar de um caractere especial (como /) com o caractere de barra invertida \.
Use Pesquisar-> Substituir e insira uma expressão regular como ^[^ ].*e substitua todos por uma sequência vazia usando Regular expression. O próximo passo é encontrar linhas vazias procurando \n\nsubstituir \nusando Extendedvárias vezes até 0 occurrences were found.(usar \r\n\r\ne \r\ndependendo do formato do arquivo). Se você tiver muitas linhas vazias em uma linha, é mais rápido usar \n\n\n\n\n\n\nou ainda mais \n: s na sequência de pesquisa.