0
点赞
收藏
分享

微信扫一扫

如何在Linux中使用 seq 命令打印具有指定增量或格式的数字序列?


seq 命令是 sequence 的缩写,用于打印数字序列,数字可以是整数或实数(带小数点)。

让我们看看如何通过一些示例来使用此命令。

使用 seq 命令

可以使用不带选项的 seq 来生成 3 种不同格式的数字序列。

打印数字序列直到上限

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

seq n

这是一个例子:

wljslmz@lhb:~$ seq 4
1
2
3
4

两个数字之间的打印顺序(下限和上限)

可以按升序提供两个数字,它将打印从小数字到大数字的序列。

seq n1 n2

看看这个例子:

wljslmz@lhb:~$ seq 3 6
3
4
5
6

在限制之间但具有自定义增量的打印序列

到目前为止,序列中的增量为 1,但也可以在下限和上限之间定义自定义增量。

seq n1 inc n2

增量值可以是整数或十进制值。

wljslmz@lhb:~$ seq 3 0.5 6
3.0
3.5
4.0
4.5
5.0
5.5
6.0

向后打印序列

另一个技巧是向后打印一个序列,为此,必须指定一个负增量。

wljslmz@lhb:~$ seq 6 -1 4
6
5
4

以上所有示例的屏幕截图:

如何在Linux中使用 seq 命令打印具有指定增量或格式的数字序列?_自定义

当你输入 0.7 之类的东西时会发生什么?在这种情况下,不会超过上限。

wljslmz@lhb:~$ seq 3 0.7 6
3.0
3.7
4.4
5.1
5.8

到目前为止,还没有使用 seq 命令的任何选项,让我们看看并使用它们。

相同宽度的打印顺序

seq 命令的选项w用于保持打印数字的宽度相同。

wljslmz@lhb:~$ seq -w 9 11
09
10
11

以特定格式打印序列

可以使用选项将输出行格式化为指定格式f。

wljslmz@lhb:~$ seq -f '##%g##' 3 5
##3##
##4##
##5##

%g用于默认号码。%e以指数格式和%f浮点格式显示数字。

以字符串为分隔符的打印序列

到目前为止,序列都是垂直打印的,这是因为默认情况下,分隔符是换行符,可以使用 option 更改它s。

wljslmz@lhb:~$ 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 脚本时,它将循环给定序列并打印值。

wljslmz@lhb:~$ bash seq.sh
Number 4
Number 6
Number 8
Number 10
Number 12
Number 14
Number 16
Number 18



举报

相关推荐

0 条评论