awk '{l=l$0 RT};NF{printf "%s",l;l=""}' < your-file
Removeria as linhas em branco à direita.
Se o arquivo for grande, você pode querer lê-lo do final até encontrar a primeira linha não vazia.
Com ferramentas GNU:
tac your-file | sed -ne '/[^[:blank:]]/!{p;d;}' -e q | wc -c
retornaria o tamanho das linhas vazias no final.
E você poderia usar isso para truncar o arquivo.
Por exemplo, com bash
:
find . -type f -name '*.txt' -print0 |
while IFS= read -rd '' file; do
n=$(tac "$file" | sed -ne '/[^[:blank:]]/!{p;d;}' -e q | wc -c)
[ "$n" -eq 0 ] || truncate -r "$file" "-s-$n" "$file"
done