使用 Linux seq 命令生成数字序列
创始人
2024-03-02 04:25:11
0

Linux 的 seq 命令可以以闪电般的速度生成数字列表,而且它也易于使用而且灵活。

在 Linux 中生成数字列表的最简单方法之一是使用 seq( 系列 sequence )命令。其最简单的形式是,seq 接收一个数字参数,并输出从 1 到该数字的列表。例如:

$ seq 5
1
2
3
4
5

除非另有指定,否则 seq 始终以 1 开头。你可以在最终数字前面插上不同数字开始一个序列。

$ seq 3 5
3
4
5

指定增量

你还可以指定增量步幅。假设你要列出 3 的倍数。指定起点(在此示例中为第一个 3 ),增量(第二个 3)和终点(18)。

$ seq 3 3 18
3
6
9
12
15
18

你可以选择使用负增量(即减量)将数字从大变小。

$ seq 18 -3 3
18
15
12
9
6
3

seq 命令也非常快。你或许可以在 10 秒内生成一百万个数字的列表。

$ time seq 1000000
1
2
3
…
…
999998
999999
1000000

real    0m9.290s  <== 9+ seconds
user    0m0.020s
sys     0m0.899s

使用分隔符

另一个非常有用的选项是使用分隔符。你可以插入逗号、冒号或其他一些字符,而不是在每行上列出单个数字。-s 选项后跟要使用的字符。

$ seq -s: 3 3 18
3:6:9:12:15:18

实际上,如果只是希望将数字列在一行上,那么可以使用空格代替默认的换行符。

$ seq -s' '  3 3 18
3 6 9 12 15 18

开始数学运算

从生成数字序列到进行数学运算似乎是一个巨大的飞跃,但是有了正确的分隔符,seq 可以轻松地传递给 bc 进行计算。例如:

$ seq -s* 5 | bc
120

该命令中发生了什么?让我们来看看。首先,seq 生成一个数字列表,并使用 * 作为分隔符。

$ seq -s* 5
1*2*3*4*5

然后,它将字符串传递给计算器(bc),计算器立即将数字相乘。你可以在不到一秒的时间内进行相当庞大的计算。

$ time seq -s* 117 | bc
39699371608087208954019596294986306477904063601683223011297484643104\
22041758630649341780708631240196854767624444057168110272995649603642\
560353748940315749184568295424000000000000000000000000000

real    0m0.003s
user    0m0.004s
sys     0m0.000s

局限性

你只能选择一个分隔符,因此计算将非常有限。而单独使用 bc 可进行更复杂的数学运算。此外,seq 仅适用于数字。要生成单个字母的序列,请改用如下命令:

$ echo {a..g}
a b c d e f g

via: https://www.networkworld.com/article/3511954/generating-numeric-sequences-with-the-linux-seq-command.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

seq

相关内容

易基因单细胞转录组测序(s...
大家好,这是专注表观组学十余年,领跑多...
2025-05-29 17:43:22
macOS Sequoia...
2025-03-28 07:20:07 作者:狼叫兽 3月28...
2025-04-19 14:45:36
苹果 macOS 15.4...
IT之家 3 月 6 日消息,苹果公司昨日(3 月 5 日)发布了...
2025-03-06 07:50:16
苹果macOS新漏洞:已发...
苹果公司近期发布了一项关键的安全更新,旨在修复macOS系统中的一...
2025-02-25 12:49:49
绿联NAS搭建macOS最...
作为NAS玩家,平时我还是蛮爱折腾虚拟机、Docker啥的。 最近...
2025-02-25 12:49:18
苹果macOS 15.3修...
近日,开发者 Dave Nanian 在其个人博客 Shirt P...
2025-02-06 09:41:48

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...