Usando colar
Só porque gosto muito de usar paste
, você pode fazer isso com paste
, embora não seja bonito:
Dados de amostra
$ seq 100 > data.txt
Exemplo
$ paste -d " " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - < data.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Se você precisar controlar o número de colunas, adicione / remova a quantidade correspondente de traços de paste
.
Você pode usar a fantasia e usar um loop para controlar a geração dos traços para paste
da seguinte forma:
$ paste -d " " $(for i in $(seq 42); do echo "- ";done) < data.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Mais aprimoramentos podem ser feitos no loop. Em vez de usar seq
, podemos usar as conchas de contraventamento da expansão {#...#}
.
$ paste -d " " $(for i in {1..42}; do echo "- ";done) < data.txt
Usando xargs
Outro método menos óbvio seria fazer com que xargs
controlasse o número de caracteres através de sua -n #
switch.
$ seq 100 | xargs -n 42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Assim, poderíamos aproveitar esse método da seguinte forma:
$ xargs -n 42 < data.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Esses métodos só funcionarão quando os dados com os quais estamos lidando forem delimitados por espaço. Também digno de nota com o método xargs
, este é por padrão, apenas ecoando os argumentos, mas ele pode ser modificado para que possa executar uma ação para cada um dos argumentos também.