使用 Linux seq 命令生成数字序列(推荐)
Linux的seq命令可以以闪电般的速度生成数字列表,而且它也易于使用而且灵活。
在Linux中生成数字列表的最简单方法之一是使用seq(系列sequence)命令。其最简单的形式是,seq接收一个数字参数,并输出从1到该数字的列表。例如:
$seq5
1
2
3
4
5
除非另有指定,否则seq始终以1开头。你可以在最终数字前面插上不同数字开始一个序列。
$seq35
3
4
5
指定增量
你还可以指定增量步幅。假设你要列出3的倍数。指定起点(在此示例中为第一个3),增量(第二个3)和终点(18)。
$seq3318
3
6
9
12
15
18
你可以选择使用负增量(即减量)将数字从大变小。
$seq18-33
18
15
12
9
6
3
seq命令也非常快。你或许可以在10秒内生成一百万个数字的列表。
$timeseq1000000 1 2 3 … … 999998 999999 1000000 real0m9.290s<==9+seconds user0m0.020s sys0m0.899s
使用分隔符
另一个非常有用的选项是使用分隔符。你可以插入逗号、冒号或其他一些字符,而不是在每行上列出单个数字。-s选项后跟要使用的字符。
$seq-s:3318
3:6:9:12:15:18
实际上,如果只是希望将数字列在一行上,那么可以使用空格代替默认的换行符。
$seq-s'' 3318
369121518
开始数学运算
从生成数字序列到进行数学运算似乎是一个巨大的飞跃,但是有了正确的分隔符,seq可以轻松地传递给bc进行计算。例如:
$seq-s*5|bc
120
该命令中发生了什么?让我们来看看。首先,seq生成一个数字列表,并使用*作为分隔符。
$seq-s*5
1*2*3*4*5
然后,它将字符串传递给计算器(bc),计算器立即将数字相乘。你可以在不到一秒的时间内进行相当庞大的计算。
$timeseq-s*117|bc 39699371608087208954019596294986306477904063601683223011297484643104\ 22041758630649341780708631240196854767624444057168110272995649603642\ 560353748940315749184568295424000000000000000000000000000 real0m0.003s user0m0.004s sys0m0.000s
局限性
你只能选择一个分隔符,因此计算将非常有限。而单独使用bc可进行更复杂的数学运算。此外,seq仅适用于数字。要生成单个字母的序列,请改用如下命令:
$echo{a..g}
abcdefg
总结
以上所述是小编给大家介绍的使用Linuxseq命令生成数字序列,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。