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