Autor Tópico: Comando sed não está funcionando dentro do loop - Shell Script  (Lida 4863 vezes)

Offline Edson Sales

  • Usuário Ubuntu
  • *
  • Mensagens: 3
    • Ver perfil
Comando sed não está funcionando dentro do loop - Shell Script
« Online: 06 de MAR?O de 2019, 22:13 »
Pessoal estou com um problema que está me tirando o sossego. Vi alguns tópicos aqui no fórum, mas não consegui aplicar ao meu caso.
Com um script, estou tentando apagar uma certa quantidade de linhas de um arquivo com o comando sed, endereçando pelo número da linha.

Para isso, filtro o arquivo com o comando cut, pra selecionar o campo que quero, e uso o grep pra selecionar linhas específicas de acordo com o conteúdo:

cut -d';' -f5 | grep -n [[:alpha:]] | cut d':' -f1 > linhas.txt

O código acima vai me retornar um arquivo com o número das linhas que quero apagar, ou seja, todas as linhas que contenham letras no campo selecionado. Então, no script, uso este arquivo em um loop:

for i in $(cat linhas.txt)
do sed -i "${i}d" arquivo.txt
done

Então depois disso tudo, nada acontece no arquivo, as linhas continuam no mesmo lugar.

Se alguém tiver alguma ideia do que está errado, por favor, me ajude!