Este comando converte seu exemplo de entrada em seu exemplo de saída:
sed 's|\|/|g;s|^[^/]*|/enlistments|'
Se alguma das suas entradas contiver barras invertidas na parte após a parte /^.*([[:digit:]]+):/ , você terá que dividir e conquistar para evitar que essas últimas barras invertidas sejam substituídas.
sed 'h;s/^.*([[:digit:]]\+)://;x;s/^\(.*([[:digit:]]\+):\).*//;s|\|/|g;s|^[^/]*|/enlistments|;G;s/\n//'
Explicação (as etapas marcadas com um asterisco ( [*] ) se aplicam a ambos os comandos):
-
h- copia a linha para manter espaço -
s/^.*([[:digit:]]\+)://- exclui a primeira parte da linha do original no espaço padrão -
x- troca espaço de padrão e armazena espaço -
s/^\(.*([[:digit:]]\+):\).*//- mantém a primeira parte da linha da cópia (descarte a última parte) -
s|\|/|g- [*] altera todas as barras invertidas para barras (na versão de divisão e conquista, apenas a parte no espaço padrão - a primeira parte da linha - é afetada) -
s|^[^/]*|/enlistments|- [*] altera tudo o que aparece antes da primeira barra em "/ inscritos" - isso pode ser mais seletivo se necessário -
G- acrescenta uma nova linha e o conteúdo do espaço de espera no final do espaço padrão -
s/\n//- remove a nova linha interior