Pular para o conteúdo

Sed em linha intercaladas [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Sed em linha intercaladas [RESOLVIDO]

Enviado em 25/03/2020 - 11:54h

Olá.

Como faço no SED para substituir palavras em linhas intercaladas?

Por exemplo:
sed '2s/antigo/novo/' arquivo.txt
Nesse caso acima, substituo somente na linha 2.

E quando eu precisar de intervalo, sei que é 2,5s por exemplo.

E em linhas intercaladas ???
Somente linha 2 e 5.

Obrigado;
Cesar

Responder tópico

2. Re: Sed em linha intercaladas [RESOLVIDO]

Melhor resposta

Enviado em 25/03/2020 - 19:24h


cesarzz escreveu:

Olá.

Como faço no SED para substituir palavras em linhas intercaladas?

Por exemplo:
sed '2s/antigo/novo/' arquivo.txt
Nesse caso acima, substituo somente na linha 2.

E quando eu precisar de intervalo, sei que é 2,5s por exemplo.

E em linhas intercaladas ???
Somente linha 2 e 5.

Obrigado;
Cesar
Segue.
sed '2s/Antigo/Novo/;5s/Antigo/KU/' dados.txt 
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________

3. Re: Sed em linha intercaladas

Enviado em 25/03/2020 - 19:32h

Use o acento til:
sed 'início~intervalo s/antigo/novo/'

Exemplo:
$ cat file.txt 
1 abc def
2 abc def
3 abc def
4 abc def
5 abc def
6 abc def
7 abc def
8 abc def
9 abc def

$ sed '0~2 s/abc/xyz/' file.txt
1 abc def
2 xyz def
3 abc def
4 xyz def
5 abc def
6 xyz def
7 abc def
8 xyz def
9 abc def
Ou seja, o zero indica para começar a contagem das linhas do início do arquivo (a partir da primeira linha). O til "~" indica o intervalo, que no caso é 2. A cada duas linhas ele faz a substituição "s/abc/xyz".

Contando com a primeira linha e pulando intervalos de 3:
$ sed '1~3 s/abc/xyz/' file.txt
1 xyz def
2 abc def
3 abc def
4 xyz def
5 abc def
6 abc def
7 xyz def
8 abc def
9 abc def
Outra forma é usar o "n":
sed 's/abc/xyz/;n;n' file.txt 
Cada "n" pula uma linha!

4. Re: Sed em linha intercaladas

Enviado em 26/03/2020 - 07:05h

esse sed é uma loucura de bom!

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder