Parece que bbedit é algum tipo de editor OSX pago. Eu tenho medo que nunca usei e não consigo instalar, então não posso ajudá-lo. Com base na regex que você mostra, ela tem sua própria sintaxe de expressão regular, portanto, é improvável que você encontre uma solução em um site geral * nix usando-a. No entanto, aqui estão algumas outras opções. Em ambos, a ideia é salvar o primeiro campo e imprimir uma linha em branco se for diferente da linha anterior:
$ awk '{if($1!=last && NR>1){print ""}last=$1;}1;' file
jan ford
jan trillian
mar trillian
sep marvin
awk é uma linguagem de script projetada para lidar com dados baseados em campo. Ele dividirá automaticamente cada linha em campos que podem ser chamados de $1 , $2 ... $N . Portanto, o script acima salvará o primeiro campo na variável last e, para cada linha, exceto a primeira (isso é o que o NR>1 significa), ela imprimirá uma linha vazia se last não for igual ao valor valor atualmente salvo. O 1; é um atalho do awk para "imprimir todas as linhas".
Como alternativa, você também pode fazer isso em perl :
$ perl -lape '$F[0] ne $last && $.>1 && print ""; $last=$F[0]' file
jan ford
jan trillian
mar trillian
sep marvin
Aqui, estamos usando as opções de linha de comando perl para fazer a maior parte do trabalho. O -a faz com que perl aja como awk e divida cada linha de entrada na matriz @F . Portanto, $F[0] é o primeiro campo. O -l faz com que perl adicione uma nova linha a cada print , então print "" apenas imprime uma linha vazia. O -p faz com que imprima cada linha de entrada depois de aplicar o script fornecido por -e . O script em si é exatamente igual ao awk acima.