Deletar linhas.

1. Deletar linhas.

Philipe Pimentel
philipepimentel

(usa CentOS)

Enviado em 23/01/2018 - 16:35h

Boa tarde.

Tenho um arquivo de texto com x linhas. Quero que da linha 10 até a 40 sejam apagados esse conteúdo. Eu já tentei utilizar o comando sed, mas acontece que ele não consegue alterar o arquivo que está no meu servidor.

sed -e '10, 40d' >> /home/grupos/x/x.txt

Se não utilizo o >> ele imprime diretamente na tela da maneira que quero. Como faço para que o comando sed altere diretamente os dados desse meu arquivo?


  


2. resolvi parcialmente.

Philipe Pimentel
philipepimentel

(usa CentOS)

Enviado em 23/01/2018 - 18:38h

O primeiro problema eu resolvi. O que eu quero agora é descobrir como eu posso deletar, por exemplo, 20 linhas abaixo de uma determinada variável ou linha. Encontrado o 'x', deletar 20 linhas abaixo.


3. Re: Deletar linhas.

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 23/01/2018 - 19:35h

apaga da linha 2 até a 21 do arquivo txt.txt

#!/bin/bash
x=1
A=$(( $x+1 ))
B=$(( $x+20 ))
sed "$A","$B"d txt.txt


serve ?
------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



4. Re: Deletar linhas.

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 23/01/2018 - 23:38h

Você quer encontrar uma "palavra" e deletar as 20 linhas depois, certo!? Que tal assim?
sed -i.bkp '/palavra/,+20d' arquivo.txt 

O problema aqui é que a linha que contém a "palavra" também é removida, não encontrei jeito de deixa-la! :(

Demonstração:
$ cat arquivo.txt 
linha1 texto bla
linha2 texto bla bla
linha3 texto bla bla bla
linha4 teste
linha5 texto bla
linha6 texto bla bla
linha7 texto bla bla bla
linha8 texto bla
linha9 texto bla bla
linha10 bla bla bla bla

$ sed '/teste/,+5d' arquivo.txt
linha1 texto bla
linha2 texto bla bla
linha3 texto bla bla bla
linha10 bla bla bla bla



5. Funcionou

Philipe Pimentel
philipepimentel

(usa CentOS)

Enviado em 25/01/2018 - 14:33h

Valeu! Funcionou certinho. Se você puder me ajudar mais um pouquinho ficaria grato.

Como eu posso utilizar esse comando sed -i '/palavra/,+20d' .... , e ao invés da /palavra/ utilizar uma variável que carrega um texto. Tipo $5 = tchau .


6. Re: Deletar linhas.

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 25/01/2018 - 18:53h

philipepimentel escreveu:

Valeu! Funcionou certinho. Se você puder me ajudar mais um pouquinho ficaria grato.

Como eu posso utilizar esse comando sed -i '/palavra/,+20d' .... , e ao invés da /palavra/ utilizar uma variável que carrega um texto. Tipo $5 = tchau .


var=texto
sed "/$var/,+20d" arquivo.txt







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts