Preciso remover as linhas que começam com espaços (a linha inteira, não apenas os espaços)
Aqui está um exemplo do arquivo com o qual estou trabalhando:
41. 415607DB (AV-2011) 2007-06-23 (1D0703A2) (572D8DEC)
42. 415607DC (AV-2012) 2007-06-21 (4A5E805B) (73A29D08)
2009-11-18 (F830F241) (11F8A118)
43. 415607DD (AV-2013) 2007-07-12 (2D92F988) (2CB96AE4)
44. 415607DE (AV-2014) 2009-08-18 (A8E5F41B) (614BF7F6)
45. 415607DF (AV-2015) 2008-06-21 (8A3A88B8) (3B7CBB2D)
46. 415607E0 (AV-2016) 2011-03-29 (EF1BE81D) (2641EDA1)
2007-06-27 (7C19F25E) (1B17FCD8)
47. 415607E1 (AV-2017) 2007-11-21 (608D1D2F) (720B9353)
2007-11-29 (E55CEF10) (1BB2F934)
2007-06-21 (DD85E9F6) (2E07093A)
48. 415607E2 (AV-2018) 2009-07-07 (3D7B9FC0) (0F8AB402)
Aqui está a saída que espero obter:
41. 415607DB (AV-2011) 2007-06-23 (1D0703A2) (572D8DEC)
42. 415607DC (AV-2012) 2007-06-21 (4A5E805B) (73A29D08)
43. 415607DD (AV-2013) 2007-07-12 (2D92F988) (2CB96AE4)
44. 415607DE (AV-2014) 2009-08-18 (A8E5F41B) (614BF7F6)
45. 415607DF (AV-2015) 2008-06-21 (8A3A88B8) (3B7CBB2D)
46. 415607E0 (AV-2016) 2011-03-29 (EF1BE81D) (2641EDA1)
47. 415607E1 (AV-2017) 2007-11-21 (608D1D2F) (720B9353)
48. 415607E2 (AV-2018) 2009-07-07 (3D7B9FC0) (0F8AB402)
^\h+.*$\R?
LEAVE EMPTY
. matches newline
Explicação:
Captura de tela (antes):
Captura de tela (depois):
É possível com uma solução regex pura (consulte a resposta de @Toto ), mas talvez a solução a seguir, usando marcadores, seja mais fácil de entender:
Abra a caixa de diálogo Localizar
Vá para a guia Marcar, procure por
^
(são 2 caracteres: um circunflexo indicando 'o início da linha' e um espaço) e ative a opção 'Marcar linha'. Presumo que seu modo de pesquisa já esteja definido como expressão regular. Clique no botão 'Marcar tudo'.Excluir todas as linhas marcadas (Pesquisar → Marcadores → Remover linhas marcadas)
Você consegue fazer isso:
Pressione Ctrl+H para localizar e substituir.
Expressão regular de marca de seleção.
Use o Regex
^\s+.*
na caixa Localizar.Mantenha a caixa Substituir em branco.
Clique em Substituir tudo.
Outra solução que parece se aplicar ao seu exemplo seria
Select All
(Ctrl-A), então vá paraEdit
>Line Operations
>Sort Lines [pick one of them that best applies]
, e isso agrupará todas as linhas que começam com espaços juntas na classificação, e você poderá facilmente selecioná-las e excluí-las . Isso só funciona neste caso porque as linhas que você deseja manter parecem já estar ordenadas numericamente. Obviamente, isso pode não se aplicar se você não quiser alterar a classificação das outras linhas.Pessoalmente,
Sort Lines Lexicographically Ascending
atribuíSort Lines as Integers Ascending
teclas de atalho porque as uso com frequência para esse tipo de coisa.Eu sei que esta é uma pergunta do bloco de notas, mas não consigo resistir.
No vim, você poderia fazer
Que diz para excluir todas as linhas começando com espaço.
Você pode criar scripts para automação como
Alternativamente, com sed se você precisar processar um stream: