通过几个例子来看一下如何使用seq这个命令
seq 命令是 sequence 的缩写,用于打印数字序列。数字可以是整数或者实数(带小数点)。
我们今天通过几个例子来看一下如何使用这个命令。
使用 seq 命令
在不带任何选项的情况下,使用 seq 可以生成3中不同格式的数字序列。
打印数字序列直到某一上限
最简单的例子,我们为 seq 指定一个上限,它将打印从 1 开始到我们指定的这个上限之间的数字序列。命令格式如下:
seq n
以下是一个例子:
$ seq 4
1
2
3
4
打印两个数字之间的数字序列(指定上限和下限)
我们指定两个数字,它将打印这两个数字之间的数字序列(两个数字之间的升序排列)。命令格式如下:
seq n1 n2
如下是一个简单的例子:
$ seq 3 6
3
4
5
6
指定限值与步长(增量)
我们上述所有粒子中,数字序列中的增量为1,也可以自定义增量。命令格式如下:
seq n1 inc n2
其中的增量值(步长)可以是整数也可以是小数。看如下例子:
$ seq 3 0.5 6
3.0
3.5
4.0
4.5
5.0
5.5
6.0
那么,如果我们指定的步长为0.7会怎么样呢?这种情况下,其数字序列不会大于上限值:
$ seq 3 0.7 6
3.0
3.7
4.4
5.1
5.8
打印递减序列
另一个用法是可以打印递减序列,为此,需要指定一个 负的增量值 ,看下面的例子:
$ seq 6 -1 4
6
5
4
以上例子都是不带任何选项的使用方法,下面我们介绍几种带选项的用法。
打印相同格式(数字位数)的序列
选项 -w 可以让打印的数字序列保持相同的格式(数字位数)。如下例子:
$ seq -w 9 11
09
10
11
以特定格式打印序列
使用 选项 -f 可以指定序列的格式,让其格式化输出:
$ seq -f '##%g##' 3 5
##3##
##4##
##5##
上述命令中 %g 表示打印默认数字。另外,%e 表示以指数方式显示数字,%f 表示以浮点数方式显示。
以字符串作为分隔符的打印序列
seq 命令打印的序列中的每一个数字之间其实是有分隔符的,默认情况下,分隔符为换行符,所以上面的例子总是换行打印下一个数字。我们可以使用 -s 选项来指定分隔符。看下面的例子:
$ 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
我们将上述 bash 脚本放到一个名为 seq.sh 的文件中,运行该文件,它将执行循环打印,如下:
$ bash seq.sh
Number 4
Number 6
Number 8
Number 10
Number 12
Number 14
Number 16
Number 18
以上就是关于 seq 命令的主要用法,大家感兴趣可以参考 man 手册来查看它更多详细的信息。
审核编辑:刘清