seq脚本输出01到15的数值

脚本输出1到15不难,比如你写一个for循环:

注意一下{}的用法

这样就可以输出1到15了,但是就算你把脚本中的1改成01,也输出不了01  02这样的数字,才开始我就在想可不可以加个判断,如果数字小于10,那在数字前加0,于是乎,这个脚本产生了:

执行一下脚本,看一下输出:

挺自豪的,但是有一些麻烦,突然想起了printf的用法,printf可以指定输出格式,如%d这样,我们可以输出宽度,但输出不能满足输出宽度的时候,默认的是用空格补全,但是我们可以加一下控制,让不满足宽度的输出空余位数用0补全,如:

输出如下:

但是有个更好的命令seq:用于产生从某个数到另外一个数之间的所有整数

先看一下seq的基本用法:

Seq [选项] 尾数   如果只指定位数则默认从1开始

Seq [选项] 首数  尾数

Seq [选项] 首数 增量 尾数     中间是定增量,事例如下:

在看一下选项:

-f, –format=格式 使用printf 样式的浮点格式

% 后面指定数字的位数 默认是”%g”, 注意-f是浮点数格式,%后不能用d(整数)
“%3g”那么数字位数不足部分是空格
#sed -f”%02g” 1 2  这样的话数字位数不足部分是0

也可以在%前加字符,如:sed -f”aa%02g” 1 3  这样就输出aa01 aa02

-s, –separator=字符串 使用指定字符串分隔数字(默认使用:\n)

指定输出数字之间的分隔符,默认是换行,我们可以指定用空格当作换行符如:

-w, –equal-width 在列前添加0 使得宽度相同

看到-w这个参数是我们需要的,自动加0

Leave a Reply

Your email address will not be published. Required fields are marked *