Você estava quase lá, tente isto:
sudo sed 's/,\([0-9]\{1,2\}\)/,\)/g' filename
Aqui, além do seu comando, acabei de adicionar \{1,2\}
, que corresponde ao regex anterior, entre uma a duas vezes, ou seja, de um mínimo de uma vez até um máximo de duas vezes.
\([0-9]\{1,2\}\)
explicado:
-
[0-9]
corresponderá a um único dígito entre 0 e 9 -
{1,2}
corresponderá à regex anterior de um a um máximo de duas vezes. Então, um jogo é obrigatório e o segundo é opcional (como você quiser) -
()
fará um grupo regex para que possamos consultá-lo mais tarde. -
Observe também que usamos '\' na frente de toda a sintaxe de regex estendida para que eles não sejam tratados literalmente. Poderíamos ter usado a opção
-r
(regex estendido) com gnused
, nesse caso poderíamos escrever:sudo sed -r 's/,([0-9]{1,2})/,\)/g' filename
EDITAR : Se você quiser combinar qualquer número de dígitos (mínimo um) depois da vírgula, você pode fazer:
sudo sed 's/,\([0-9]\{1,\}\)/,\)/g' filename
ou mais simplesmente:
sudo sed 's/,\([0-9]\+\)/,\)/g' filename