Eu tenho arquivo de entrada como abaixo
1
2
3
4
5
6
7
8
9
10
Eu preciso de saída como abaixo
1 2
3 4 5
6 7
8 9 10
Significando que as primeiras duas linhas devem ser unidas e, em seguida, as próximas três linhas também devem ser unidas.
Eu tenho arquivo de entrada como abaixo
1
2
3
4
5
6
7
8
9
10
Eu preciso de saída como abaixo
1 2
3 4 5
6 7
8 9 10
Significando que as primeiras duas linhas devem ser unidas e, em seguida, as próximas três linhas também devem ser unidas.
Eu também posso fazer o trabalho com
paste
:bash foi usado por mim aqui (para
$'\n'
). Eseq 10
foi reproduzir sua entrada:Isso alterna entre unir e imprimir 2 ou 3 linhas consecutivas.
Resultado:
ou com os dados de entrada originais:
Como alternativa, usando uma matriz.
awk
não tem umajoin()
função, então temos que fornecer uma.Basta fazer o trabalho com abaixo
awk
:Resultado:
Uma abordagem de aplicativo duplo awk:
As linhas são primeiro unidas em grupos de cinco, cada linha unida com
:
um símbolo.A solução funciona mesmo se as linhas contiverem mais palavras