Pular para o conteúdo

Limitando o alcance do SED por números de linha

Dica publicada em Shell Script / Expressões Regulares
Fábio Berbert de Paula fabio
Hits: 2.327 Categoria: Shell Script Subcategoria: Expressões Regulares
  • Indicar
  • Impressora
  • Denunciar

Limitando o alcance do SED por números de linha

Nessa dica veremos como limitar expressões do sed de acordo com números de linha do arquivo. Mostrando na prática ficará mais fácil de explicar...

Dado o seguinte arquivo "texto.txt":

1 Banana
2 Banana
3 Banana
4 Banana
5 Banana
6 Banana
7 Banana
8 Banana
9 Banana
10 Banana
11 Banana
12 Banana
13 Banana
14 Banana
15 Banana
16 Banana
17 Banana
18 Banana
19 Banana
20 Banana

Quero substituir a palavra "Banana" por "Maça", mas apenas entre as linhas 5 e 10:

sed '5,10 s/Banana/Maça/' texto.txt
1 Banana
2 Banana
3 Banana
4 Banana
5 Maça
6 Maça
7 Maça
8 Maça
9 Maça
10 Maça
11 Banana
12 Banana
13 Banana
14 Banana
15 Banana
16 Banana
17 Banana
18 Banana
19 Banana
20 Banana


Se eu quiser substituir "Banana" por "Laranja" da linha 11 até o final do arquivo, mas não sei qual o número da última linha:

sed '11,$ s/Banana/Laranja/' texto.txt
1 Banana
2 Banana
3 Banana
4 Banana
5 Banana
6 Banana
7 Banana
8 Banana
9 Banana
10 Banana
11 Laranja
12 Laranja
13 Laranja
14 Laranja
15 Laranja
16 Laranja
17 Laranja
18 Laranja
19 Laranja
20 Laranja


Também é possível combinar substituições e ranges de linhas, separando as expressões por ponto e vírgula:

sed '5,10 s/Banana/Maça/ ; 11,$ s/Banana/Laranja/' texto.txt
1 Banana
2 Banana
3 Banana
4 Banana
5 Maça
6 Maça
7 Maça
8 Maça
9 Maça
10 Maça
11 Laranja
12 Laranja
13 Laranja
14 Laranja
15 Laranja
16 Laranja
17 Laranja
18 Laranja
19 Laranja
20 Laranja


Até a próxima!

Erro: "Possible missing firmware... for module r8169" [Resolvido]

Como descobrir seu chat_id no Telegram

Ouvindo rádios online com o mpg123

Como desligar a tela via linha de comando

online_man - Páginas de manual online no terminal

Executando comandos em looping no shell

Ubuntu - Iniciar Conky no Login

Exibindo o nome completo dos pacotes instalados no Debian e derivados

Múltiplas expressões no SED

Expressão regular para validar um IP

#1 Comentário enviado por maurixnovatrento em 06/06/2020 - 11:13h

Muito Bom.

___________________________________
Conhecimento não se Leva para o Túmulo.
#2 Comentário enviado por eduardo em 08/06/2020 - 17:42h
Ótima dica!

Contribuir com comentário

Entre na sua conta para comentar.