如何使用Linux seq命令

描述

seq命令是sequence的缩写,用于以递增或者递减的方式打印数字序列。 换句话说,就是打印指定数值的范围。

数字可以是整数或带小数点的实数,也可以是负数。 你也可以指定序列的上限或者下限等。

seq生成的数字范围不会超过上限值,也就是可以是等于或者小于。 下限值和上限值表现的行为一致。

数字序列直到上限

在最简单的形式中是 打印数字序列直到上限 ,您为seq指定一个上限,它将打印从1到上限的序列。

这一个指定上限的示例,如果你需要打印1-9的范围内的数字,请运行命令seq 9

seq 9

打印指定范围的数字

您可以按升序方式指定下限值和上限值两个数字,seq将打印从小到大的数字序列。

这是seq命令指定增量的格式seq n1 n2n1表示下限值,n2表示上限值。

这是一个指定下限值为3,上限值为6的示例,命令seq 3 6将打印3到6范围内数字,包括3和6。

seq n1 n2
3
4
5
6

自定义增量序列

seq命令在不指定的增量情况下,序列中的增量为1。 但您也可以在下限和上限之间自定义增量。

这是seq命令指定增量的格式seq n1 inc n2inc的值表示增量,增量值可以是整数或小数或者是负数。

命令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)。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分