Usando o GNU sed :
sed -i '$s/,$//' file
Ou seja, na última linha ( $ ) substitua ( s ) a vírgula no final da linha ( ,$ ) por nada.
A alteração será feita no local devido ao sinal -i .
Com o padrão sed :
sed '$s/,$//' <file >file.new &&
mv file.new file
Nota: Alguém sugeriu uma edição para alterar "na última linha" para "última na linha" (ou algo similar). Isto está errado. Quando $ é usado para especificar um endereço (uma linha onde aplicar um comando de edição), ele se refere à última linha do fluxo ou arquivo. Isso é diferente de usar $ em uma expressão regular.