sed 's/\([^;]*ABCD[^;]*;\)\(.*;\)//' <in >out
Isso provavelmente deve ser feito.
Ele só funcionará para a primeira ocorrência de um campo ABCD
. Se houver mais de um na linha, todo o resto será ignorado.
Para trocar o último ;
ponto-e-vírgula por uma barra, apenas altere um pouco:
sed 's|\([^;]*ABCD[^;]*\);\(.*;\)|/|' <in >out