Regex não casa no SED mas casa fora dele [RESOLVIDO]

1. Regex não casa no SED mas casa fora dele [RESOLVIDO]

Roberto Gama
robertofgama

(usa Manjaro Linux)

Enviado em 12/08/2022 - 16:45h


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 



  


2. Re: Regex não casa no SED mas casa fora dele

Marcelo Oliver
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
______________________________________________________________________



3. RESOLVIDO

Roberto Gama
robertofgama

(usa Manjaro Linux)

Enviado em 12/08/2022 - 19:11h

Muito obrigado, sua ajuda resolveu meu problema.


4. Re: Regex não casa no SED mas casa fora dele [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 12/08/2022 - 19:42h


robertofgama escreveu:

Muito obrigado, sua ajuda resolveu meu problema.

Por nada Roberto,
se não for pedir muito, poderia retribuir.....
Só marcar a resposta que Mais te Ajudou,
como a MELHOR RESPOSTA...
Dessa forma, sou pontuado, o que incentiva a continuar colaborando....


______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts