Se for sobre editar o conteúdo do file_list.txt
, você usaria uma ferramenta de edição de texto, não um loop de shell , como:
sed 's/[[:space:]]*$//; # remove trailing whitespace
/./!d; # remove empty lines' < file_list.txt > new_file_list.txt
Ou para edição no local:
perl -nli.back -e 's/\s+$//;print if /./' file_list.txt
(remova .back
se você não precisar de cópias de backup do original).
Se file_list.txt
contiver uma lista de arquivos e esses arquivos cujo conteúdo você deseja editar, então, novamente, um loop não é ideal, a menos que você queira executar um comando de edição por arquivo.
Se o conteúdo de file_list.txt
for compatível com o formato de entrada xargs
, é onde os nomes de arquivos são espaços em branco (incluindo nova linha) separados e aspas duplas, aspas simples ou contrabarra podem escapar de espaços em branco e uns aos outros (permitindo qualquer caractere) então você pode apenas fazer:
xargs < file_list.txt perl -nli.back -e 's/\s+$//;print if /./' --