msoliver
(usa Debian)
Enviado em 12/08/2022 - 18:06h
robertofgama escreveu:
Boa tarde a todos, estou com uma dúvida envolvendo o comando SED com REGEX, gostaria alterar todas as ocorrências da string
LIVRO [NUMERO DO LIVRO] [NOVA LINHA] [TITULO DO LIVRO] editasse para
## TITULO DO LIVRO . Meu regex está fechando certinho nos sites de teste de regex, porém quando vou para o comando SED ao adicionar o \n para ele fechar com a quebra de linha, acaba não encontrando nada.
# Este é o comando que estou usando:
cat codigoCivil_0 | sed 's/LIVRO.*\n/## /'
# Este é o texto
P A R T E G E R A L
LIVRO I
DAS PESSOAS
TÍTULO I
DAS PESSOAS NATURAIS
CAPÍTULO I
Da Personalidade e da Capacidade
LIVRO II
DOS BENS
LIVRO III
DOS FATOS JURÍDICOS
# Como exemplo de resultado o texto
LIVRO I
DAS PESSOAS
Viraria
## DAS PESSOAS
Boa noite Roberto.
Para que o "sed" interprete o "\n", a linha deve ser colocada na memória, usando o "N"
Segue:
sed '/^LIVRO.*$/{N;s/LIVRO.*\n/## /;}' seutexto.txt
## DAS PESSOAS
TÍTULO I
DAS PESSOAS NATURAIS
CAPÍTULO I
Da Personalidade e da Capacidade
## DOS BENS
## DOS FATOS JURÍDICOS
Caso queira apagar as linhas vazias:
sed '/^LIVRO.*$/{N;s/LIVRO.*\n/## /;};/^$/d;' seutexto.txt
## DAS PESSOAS
TÍTULO I
DAS PESSOAS NATURAIS
CAPÍTULO I
Da Personalidade e da Capacidade
## DOS BENS
## DOS FATOS JURÍDICOS
É isso.....
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando:
ACIMA , faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________