如何在 Linux 中使用 seq 生成数字序列

在 Linux 上,您可以找到一些具有不寻常功能的命令。 一个这样的命令是 seq,它根据指定的参数输出一系列数字。

但是你可以用一个向你抛出一堆数字的命令行实用程序做什么呢? 您将在本指南中找到答案。

如上所述,Linux 中的 seq 命令可以快速生成数字字符序列。 用户可以将参数传递给命令以生成不同的数字组合。 为了 example,您可以通过简单地向 seq 传递一个附加参数来获得一个递增的列表。

该命令的实际用途是什么? 虽然 seq 整体上看起来可能不是一个强大的工具,但您可以通过使用其他 Linux 实用程序来实现该命令,从而从该命令中受益。 您也可以使用 seq 在 bash 脚本来揭示其真正的力量。

如何在 Linux 中使用 seq

Seq 只需要几个参数,这使它成为任何人都易于学习的工具。

基本语法

该命令的基本语法是:

seq options numbers

…在哪里 选项 是您可以指定以调用命令的不同方法的标志,并且 数字 是您传递以生成数字序列的参数。

生成数字列表

Seq 参数遵循下面给出的输入格式:

seq last
seq first last
seq first increment last

当您只指定一个数字时,seq 将其解释为列表的上限,并生成一个从 1 到指定数字的序列。

seq 5

上述命令将输出以下内容:

1
2
3
4
5

当 seq 接收到两个数字作为输入时,它将它们解释为序列的下限和上限。 要生成从 4 到 8 的数字列表:

seq 4 8

输出:

4
5
6
7
8

但是当您将三个数字传递给命令时,它会将第二个参数解释为增量数字。 为了 example:

seq 3 2 13

上述命令将输出从 3 到 13 的数字列表,增量为 2。

3
5
7
9
11
13

在数字之间添加分隔符

默认情况下,seq 使用换行符作为列表的分隔符。 这就是为什么列表中的每个数字都在单独的行上的原因。

您可以更改此默认行为并使用自定义分隔符 -s 旗帜。 要使用 时期 (.) 字符作为分隔符:

seq -s . 3 7

输出:

3.4.5.6.7

请记住,有些字符像 波浪号 (~) 必须用引号括起来。 这是因为终端使用 波浪号 表示的字符 /家 目录,如果您不添加引号,这将反映在输出中。

seq -s ~ 3 7

输出:

3/home/4/home/5/home/6/home/7

另一方面,当您用引号括起分隔符时:

seq -s '~' 3 7

输出:

3~4~5~6~7

调整输出格式

您还可以使用 -F 旗帜。 默认情况下,seq 从用户输入中提取格式样式。 为了 example,如果您指定数字 0.1 和 0.5,则默认输出将具有浮点数格式。

seq 0.1 0.5

输出:

0.1
0.2
0.3
0.4
0.5

您可以使用各种转换规范指定自定义输出格式,例如 %a、%e、%f、%g、%A、%E、%F 和 %G。

您可以使用 %F 说明符,如果您希望输出遵循浮点数格式。

seq-f %f 4 7

输出:

4.000000
5.000000
6.000000
7.000000

将精度修改为最多两位小数:

seq -f %0.2f 4 7

输出:

4.00
5.00
6.00
7.00

您还可以通过指定输出模板来完全转换输出。 为了 example以获取以开头的所有 IP 地址的列表 192.168.5.x

seq -f 192.168.5.%g 1 233

输出: