Isso é difícil de fazer em sed
porque falta aritmética. No entanto, existem algumas maneiras de fazer isso com awk
:
awk '{ printf "%d, %s\n", (linenum++ % 3) + 1, $0 }' lines.txt
ou
awk '{ print (linenum++ % 3) + 1 ", " $0 }' lines.txt
Em ambos os casos, linenum
está sendo usado para contar as linhas, então a operação do módulo é usada para calcular o restante da contagem de linhas dividida por 3. O 1
é adicionado para obter o esquema de numeração que você solicitou.
printf
fornece um pouco de "visual" para o programa.
Veja man awk
para detalhes e outras opções.