Re o comando que você forneceu:
grep "5628" test.csv | sed 's/,*$//g'
Isto produzirá linhas correspondentes a '5628' com todas as vírgulas à direita removidas. Não atualizará o arquivo test.csv
.
No entanto, você indicou que o arquivo veio de uma máquina Windows, portanto, os finais de linha são CR / NL, e não apenas NL. O resultado é que há um CR oculto no final da linha e, em vez disso, você precisa de uma linha de comando:
grep "5628" test.csv | sed 's/,*\r*$//'
Na verdade, você pode simplesmente fazer isso em um comando:
sed -n '/5628/s/,*\r*$//p' test.csv