2016-02-10 91 views
-1

我想要打印數字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

請發表你已經嘗試 –

+0

我試圖下面的代碼:#/斌/慶典 爲((i = 1; I <= 100;我+ +)) 做 回聲 「$ I」 !完成 –

回答

0

它有點重,因爲它產生許多子進程。但在第一欄張貼的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在第二行等..

+0

我們可以使用循環來做到這一點嗎? –

+0

@KhanduKshirsagar你爲什麼想要? – 123

0

還有一個更簡單的方法!

$ 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 
+0

嘿嘿耶..多數民衆贊成更容易。我剛剛發佈了我想到的第一件事情。我想我有時候會把事情複雜化:P – ritesht93