本指南将向您展示如何使用seq命令在Linux终端中生成数字列表。
Seq命令的基本语法
想象一下你想在屏幕上显示数字1到20。
以下seq命令向您显示了如何执行此操作:
seq 1 20
就其本身而言,该命令相当无用。 至少您会希望将数字输出到文件。
您可以使用cat命令执行此操作,如下所示:
seq 1 20 | cat>编号文件
现在您将有一个名为编号文件的文件,每行打印1到20的数字。
我们迄今为止显示的用于显示数字序列的方法可以被缩小为以下内容:
seq 20
默认的起始数字是1,所以只需提供数字20,seq命令自动从1到20计数。
如果您想在两个不同的数字之间进行计数,您只需要使用长格式,如下所示:
seq 35 45
这将显示数字35到45到标准输出。
如何使用Seq命令设置增量
如果您想要显示1到100之间的所有偶数,您可以使用seq的递增部分一次步进2个数字,如以下示例所示:
seq 2 2 100
在上面的命令中,第一个数字是起点。
第二个数字是每步增加的数字,例如2 4 6 8 10。
第三个数字是要计算的最终数字。
格式化Seq命令
简单地将数字发送到显示器或文件并不是特别有用。
但是,也许你想在3月份的每个日期创建一个文件。
要做到这一点,你可以使用下面的开关:
seq -f“%02g / 03/2016”31
这将显示类似于以下内容的输出:
- 2016年1月3日
- 2016年2月3日
- 2016年3月3日
你会注意到%02g。 有三种不同的格式:e,f和g。
作为使用这些不同格式时会发生什么的示例,请尝试以下命令:
seq -f“%e”1 0.5 3
seq -f“%f”1 0.5 3
seq -f“%g”1 0.5 3
%e的输出如下所示:
- 1.000000e + 00
- 1.500000e + 00
- 2.000000e + 00
- 2.500000e + 00
- 3.000000e + 00
%f的输出如下所示:
- 1.000000
- 1.500000
- 2.000000
- 2.500000
- 3.000000
最后,%g的输出如下所示:
- 1
- 1.5
- 2
- 2.5
- 3
使用Seq命令作为For循环的一部分
您可以使用seq命令作为for循环的一部分, 以在指定次数内运行相同的代码。
例如,假设你想要显示“hello world”这个词汇十次。
这是你如何做到的:
因为我在$(seq 10)
做
回声“你好世界”
DONE
更改序列分隔符
默认情况下,seq命令在新行上显示每个数字。
这可以更改为您希望使用的任何分隔字符。
例如,如果您希望使用逗号分隔数字,请使用以下语法:
seq -s,10
如果你想使用空格,那么你需要把它放在引号中:
seq -s“”10
使序列号具有相同的长度
当你把数字输出到一个文件中时,你可能会感到恼火,因为当你逐步增加数十和数百个数字的长度不同时。
例如:
- 1
- 2
- 3
- 10
- 11
- 99
- 100
- 200
- 1000
- 10000
您可以使所有数字的长度相同,如下所示:
seq -w 10000
当你运行上面的命令时,输出现在如下所示:
- 00001
- 00002
- 00003
- 00010
- 00011
- 00099
- 00100
- 00200
- 01000
- 10000
以倒序显示数字
您可以按相反顺序显示序列中的数字。
例如,如果要显示数字10到1,则可以使用以下语法:
seq 10 -1 1
浮点数字
您也可以使用sequence命令处理浮点数。
例如,如果你想用0.1步显示0到1之间的每个数字,你可以这样做:
seq 0 0.1 1
概要
当用作bash脚本的一部分时,seq命令更加有用。