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.