Supondo que os dados de exemplo da sua pergunta estão armazenados em file.txt , você pode usar sed para processar o texto e remover tudo após (e incluindo) o primeiro caractere de espaço em branco em cada linha começando com > :
$ sed -r 's/^(>\S+)\s.*//' file.txt
>AB3446
GATAGATAGATAGACACA
>AH4567
ACGTGATAGATGAGACGATGCCC
CACGGGTATATAGCCCAA
Se o comando sed -r 's/^(>\S+)\s.*//' file.txt produzir a saída correta para você, você poderá instruí-lo a modificar o arquivo fornecido in-loco, em vez de apenas mostrar a saída, adicionando a opção -i a este comando sed :
sed -r -i 's/^(>\S+)\s.*//' file.txt
O que isto faz é simples. -r ativa expressões regulares estendidas, fornecendo mais funcionalidades para definir padrões de regex em nosso comando, que é s/PATTERN/REPLACEMENT/ aqui.
PATTERN é a expressão regular ^(>\S+)\s.* que corresponde a um caractere > no início de uma linha ( ^ ) seguido por pelo menos um caractere que não seja espaço em branco ( \S+ ), um caractere de espaço em branco \s , pode ser um espaço em branco normal, tabulação, etc.) e depois todo o resto da linha ( .* é qualquer número de qualquer caractere).
REPLACEMENT é , que indica sed para usar o conteúdo do primeiro grupo de captura (o que corresponde ao padrão dentro do par mais à esquerda de parênteses redondos (...) ) da linha correspondida como substituição. No nosso caso, isso é tudo até o primeiro espaço em branco, exclusivamente.