seq命令是sequence的縮寫,用于以遞增或者遞減的方式打印數字序列。 換句話說,就是打印指定數值的范圍。
數字可以是整數或帶小數點的實數,也可以是負數。 你也可以指定序列的上限或者下限等。
seq生成的數字范圍不會超過上限值,也就是可以是等于或者小于。 下限值和上限值表現的行為一致。
數字序列直到上限
在最簡單的形式中是 打印數字序列直到上限 ,您為seq指定一個上限,它將打印從1到上限的序列。
這一個指定上限的示例,如果你需要打印1-9的范圍內的數字,請運行命令seq 9
。
seq 9
打印指定范圍的數字
您可以按升序方式指定下限值和上限值兩個數字,seq將打印從小到大的數字序列。
這是seq命令指定增量的格式seq n1 n2
,n1
表示下限值,n2
表示上限值。
這是一個指定下限值為3,上限值為6的示例,命令seq 3 6
將打印3到6范圍內數字,包括3和6。
seq n1 n2
3
4
5
6
自定義增量序列
seq命令在不指定的增量情況下,序列中的增量為1。 但您也可以在下限和上限之間自定義增量。
這是seq命令指定增量的格式seq n1 inc n2
,inc
的值表示增量,增量值可以是整數或小數或者是負數。
命令seq 3 0.5 6
,這是一個指定增量為0.5的示例,下限值3,上限值為6。
seq 3 0.5 6
3.0
3.5
4.0
4.5
5.0
5.5
6.0
遞減或者倒序序列
另一個技巧是以遞減或者倒序的方式打印一個序列。 要以這種方式打印序列,您必須指定一個負增量值。
這是seq命令指定增量為負數的格式seq n1 -inc n2
,-inc
的值表示增量,但這個增量是負數。
例如命令seq 6 -1 4
將會從6遞減到4。
seq 6 -1 4
6
5
4
以相同位數打印數字
到目前為止。 您還沒有使用seq命令的任何選項。 讓我們看看并使用seq的選項。
seq命令的w
選項用于保持打印數字都有相同的位數。 你會發現當打印的值不足時,seq將會在前面以0填充。
seq -w 9 11
09
10
11
以指定格式打印序列
除了使用相同位數打印數字范圍,你可以通過f
選項控制seq命令打印數字的格式。 在指定格式時,你需要使用占位符,代替數字。
%g
用于整數格式顯示數字。 %e
以指數格式顯示數字,%f
浮點格式顯示數字。
例如命令seq -f '##%g##' 3 5
,將會以格式##%g##
打印數字序列,下限值為3,上限值5。
seq -f '##%g##' 3 5
##3##
##4##
##5##
指定換行符
前面的打印的序列都是垂直打印的。 這是因為默認情況下,seq命令使用的分隔符是換行符。 您可以使用選項s
指定分隔符。 分隔符可以是任意符號。
分隔符之間的'
單引號不是必需的,但它有助于避免shell的解釋。 如果你使用對于shell有語義的字符比如$
。
$
是一個正則表達式的通配符,如果不加'
單引號,shell將會解釋$
符號。
例如命令seq -s ':' 4
將會使用:
作為分隔符,上限值為4,也就是打印1-4范圍內的數字。
seq -s ':' 4
1:2:3:4
seq命令的實際應用
您可能想知道這個seq命令的實際用途是什么。 有很多情況可以使用它。 我能想到的一個示例是當您在bash中使用for循環時。
您可以使用seq命令,而不是在循環生成序列。 它將循環指定的序列并打印值。
#!/bin/bash
for i in $(seq 4 2 18)
do
echo "Number $i"
done
Number 4
Number 6
Number 8
Number 10
Number 12
Number 14
Number 16
Number 18
結論
你已經知道如何使用seq命令和基礎的選項。 seq命令會在你指定的數值之間打印一系列的值。
也可以是從負數開始,以及在實際中的應用。 如果你想編寫一個自己seq命令,可以參考我們一個教程-Bash Sequence序列表達式(Range)。
-
Linux
+關注
關注
87文章
11304瀏覽量
209483 -
命令
+關注
關注
5文章
684瀏覽量
22021 -
數字序列
+關注
關注
0文章
2瀏覽量
6187
發布評論請先 登錄
相關推薦
評論