Como Ipor e glenn disseram, com base em seu relatório do comentário de B Camada sobre tail -1 file_list.txt
, já que há uma linha em branco no final desse arquivo, quando o laço while
lê essa linha em branco, a% A variável$line
recebe um valor vazio, não deixando nenhum nome de arquivo para sed
processar.
$ cat i
file1
file2
$ while IFS= read -r line; do printf -- "-->%s<--\n" "$line"; done < i
-->file1<--
-->file2<--
--><--
A correção aqui é excluir essa linha em branco final de file_list.txt ou envolver um teste em torno do processamento real para testar a existência do arquivo:
# do ...
if [ -f "$line" ]
then
# process file
fi
# done ...