Com o GNU sed :
$ sed '1~2s/;.*//' file
O intervalo de endereços 1~2 corresponderá à linha 1 e depois a todas as segundas linhas depois disso.
O caso geral é first~step e o exemplo no manual é sed -n 1~2p , que imprimirá todas as linhas ímpares.
Esta é uma extensão do GNU.
O equivalente em awk :
$ awk 'NR % 2 { sub(";.*", "") } { print }' file
Ou, como sugerido por Arrow nos comentários:
$ awk -F';' 'NR % 2 { $0 = $1 } { print }' file
que tem o mesmo efeito, mas em vez de substituir explicitamente tudo após o primeiro ; , usa ; como o separador de campo (com -F';' ) e, em seguida, gera apenas o primeiro campo (substituindo toda a entrada linha com apenas o primeiro campo para linhas ímpares).