Comando sed não está funcionando dentro do loop - Shell Script

Iniciado por Edson Sales, 06 de Março de 2019, 22:13

tópico anterior - próximo tópico

Edson Sales

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!