我想要打印数字1到100个数字,但在列中:第一列中的前1到10,第二列中的11到20,然后第三列中的21到30。 ..,第10栏91到100。打印数字1到100在10列
如何在Bash中实现此目标?我曾尝试:
#!/bin/bash
for ((i=1; i <= 100 ; i++)) do
echo " $i"
done
我想要打印数字1到100个数字,但在列中:第一列中的前1到10,第二列中的11到20,然后第三列中的21到30。 ..,第10栏91到100。打印数字1到100在10列
如何在Bash中实现此目标?我曾尝试:
#!/bin/bash
for ((i=1; i <= 100 ; i++)) do
echo " $i"
done
它有点重,因为它产生许多子进程。但在第一栏张贴的1班轮
paste <(seq 1 10) <(seq 11 20) <(seq 21 30) <(seq 31 40) <(seq 41 50) <(seq 51 60) <(seq 61 70) <(seq 71 80) <(seq 81 90) <(seq 91 100)
1-10,11-20第2列等..
和
seq 1 100 | paste - - - - - - - - - -
第一行1-10,第二行11-20等。
注意:第二个命令和第一个命令中有10个命令,<(命令)表示进程替换,即替换该过程的输出
编辑:在第一列中第二列方法纯粹使用用于循环
for ((i=1;i<=10;i++)); do for ((j=i;j<=(i+90);j+=10)); do printf "%2d " $j done echo done
为1-10,11-20等..
和
for ((i=0;i<10;i++)); do for ((j=1;j<=10;j++)); do printf "%2d " $[$i*10+$j] done echo done
1-10在第一排,11-20在第二行等..
我们可以使用循环来做到这一点吗? –
@KhanduKshirsagar你为什么想要? – 123
还有一个更简单的方法!
$ seq 100 | pr -10t
1 11 21 31 41 51 61 71 81 91
2 12 22 32 42 52 62 72 82 92
3 13 23 33 43 53 63 73 83 93
4 14 24 34 44 54 64 74 84 94
5 15 25 35 45 55 65 75 85 95
6 16 26 36 46 56 66 76 86 96
7 17 27 37 47 57 67 77 87 97
8 18 28 38 48 58 68 78 88 98
9 19 29 39 49 59 69 79 89 99
10 20 30 40 50 60 70 80 90 100
嘿嘿耶..多数民众赞成更容易。我刚刚发布了我想到的第一件事情。我想我有时候会把事情复杂化:P – ritesht93
请发表你已经尝试 –
我试图下面的代码:#/斌/庆典 为((i = 1; I <= 100;我+ +)) 做 回声 “$ I” !完成 –