Parece que você deseja remover apenas os espaços antes ou depois de um ponto e vírgula. Nesse caso:
$ sed 's/[[:space:]]*;[[:space:]]*/;/g' text
03139;5;IT1234978208;20150930;CTZ 13/31.12.15;
03137;6;IT1234978206;20151015;CTZ 13/31.11.18;
....
....
03134;8;IT1234974406;20151212;CTZ 13/37.13.17;
Como funciona:
O comando de substituição do sed normalmente se parece com s/old/new/ , em que old é uma expressão regular. Nesse caso, adicionamos um sufixo g para indicar a substituição global (em vez de apenas substituir uma instância). No nosso caso, old corresponde a qualquer ; e qualquer espaço em branco ao redor: s/[[:space:]]*;[[:space:]]* . Isso é substituído por new , que é apenas um ; .