Tenho um arquivo que contém uma coluna longa e quero dividi-lo em linhas, cada uma com 5 valores.
Por exemplo, arquivo de entrada:
1
2
3
4
5
6
7
8
9
10
Arquivo de saída:
1 2 3 4 5
6 7 8 9 10
Tenho um arquivo que contém uma coluna longa e quero dividi-lo em linhas, cada uma com 5 valores.
Por exemplo, arquivo de entrada:
1
2
3
4
5
6
7
8
9
10
Arquivo de saída:
1 2 3 4 5
6 7 8 9 10
Usando
paste
:-d' '
especifica espaço como o delimitador de saída- - - - -
especifica que a entrada será lida 5 vezes, combinando 5 linhas em uma.Usando
awk
:Isso imprimirá cada linha seguida por um espaço e imprimirá uma nova linha a cada 5 linhas.
Usando
sed
:N
anexa a próxima linha ao espaço padrão (feito quatro vezes para acrescentar quatro linhas adicionais, perfazendo um total de cinco linhas no espaço padrão).s/\n/ /g
substitui todos os caracteres de nova linha por um espaço no espaço padrão.Usando
ed
:,s/$/ /
adicionará um espaço ao final de cada linha.g//.,+4j
juntará todas as linhas em grupos de 5 (a expressão regular vazia reutiliza a$
expressão dos
comando).Usando
pr
:-a
: imprimir colunas-t
: omitir cabeçalho-5
: 5 colunas-s' '
: separar com espaçoSe você precisar usar o awk, uma opção é definir o separador do registro de saída
ORS
como condicional ao fato de o número do registroNR
ser divisível por 5:Ex.
Outra solução awk (meio boba), usando um contador
a
:Usando qualquer awk:
ou se preferir: