1、命令概述
seq命令用于产生从某个数到另外一个数之间的所有整数(正数或者负数)。
2、命令语法
seq【选项】 【参数】
seq [选项]... 尾数
seq [选项]... 首数 尾数
seq [选项]... 首数 增量 尾数(seq 初始值 增量 终止值)
3、命令选项
-f:使用printf 样式的浮点格式(在不指定格式的情况下,默认格式为'%g')
-s:使用指定字符串分隔数字(默认使用:\n)
-w:在列前添加0 使得宽度相同(自动补位)
4、命令示例
4.1 默认输出:
1 [root@lzg ~]# seq 5 #输出从1到5之间的整数 2 1 3 2 4 3 5 4 6 5 7 [root@lzg ~]# seq 4 8 #输出4到8之间的整数 8 4 9 5 10 6 11 7 12 8 13 [root@lzg ~]# seq 1 2 10 #从1开始增2输入,到10结束。增量可以是整数也可以是小数。 14 1 15 3 16 5 17 7 18 9
1 [root@lzg ~]# seq -3 1 2 -3 3 -2 4 -1 5 0 6 1 7 [root@lzg ~]# seq 1.1 5 #默认增量为1 8 1.1 9 2.1 10 3.1 11 4.1 12 [root@lzg ~]# seq 1.1 0.2 2 #指定增量为0.2 13 1.1 14 1.3 15 1.5 16 1.7 17 1.9
4.2 -s:使用指定字符串分隔数字(默认使用:\n):
1 [root@lzg ~]# seq -s "#" 5 #用#号间隔 2 1#2#3#4#5 3 [root@lzg ~]# seq -s "#" 2 5 4 2#3#4#5 5 [root@lzg ~]# seq -s "#" 1 2 10 6 1#3#5#7#9 7 [root@lzg ~]# seq -s " " 5 #用空格间隔 8 1 2 3 4 5 9 [root@lzg ~]# seq -s " " 2 5 10 2 3 4 5 11 [root@lzg ~]# seq -s " " 1 2 10 12 1 3 5 7 9 13 [root@lzg ~]# seq -s "dd" 5 #用字符串dd间隔 14 1dd2dd3dd4dd5 15 [root@lzg ~]# seq -s "dd" 2 5 16 2dd3dd4dd5 17 [root@lzg ~]# seq -s "dd" 1 2 10 18 1dd3dd5dd7dd9
[root@lzg ~]# seq -s "`echo -e "\t"`" 1 2 5 #使用制表符,调用命令 1 3 5
4.3 -w:在列前添加0 使得宽度相同(自动补位):
1 [root@lzg ~]# seq -w 8 11 2 08 3 09 4 10 5 11 6 [root@lzg ~]# seq -w 98 101 7 098 8 099 9 100 10 101
4.4 输出98~101之间的整数,并且要求输出数字宽度相同,不足的用空格补足。
[root@lzg ~]# seq -f "%3g" 98 101 #("%3g" 这种格式表示指定“位宽”为三位,数字位数不足部分用空格补位) 98 99 100 101 [root@lzg ~]# seq -f "%5g" 98 101 #("%5g" 这种格式表示指定“位宽”为五位,数字位数不足部分用空格补位)可以看到前面都有空格 98 99 100 101
[root@lzg ~]# seq -f "%03g" 98 101 #("%03g" 这种格式表示指定“位宽”为三位,数字位数不足部分用0补位,通过%后添加0替代空格补足空位),等同于 -w 选项。 098 099 100 101 [root@lzg ~]# seq -f "%05g" 98 101 #("%05g" 这种格式表示指定“位宽”为五位,数字位数不足部分用0补位,通过%后添加0替代空格补足空位) 00098 00099 00100 00101
注意:其实 % 前面可以指定字符串,同样 g 的后面也可以指定字符串:
[root@lzg ~]# seq -f "as%g" 98 101 as98 as99 as100 as101 [root@lzg ~]# seq -f "as%03g" 98 101 as098 as099 as100 as101 [root@lzg ~]# seq -f "as%02gaa" 4 as01aa as02aa as03aa as04aa
利用此法可以创建文件或者目录:
[root@lzg ~]# touch $(seq -f "test%02g.txt" 4) [root@lzg ~]# ls test01.txt test02.txt test03.txt test04.txt [root@lzg ~]# mkdir $(seq -f "dir_%02g" 4) [root@lzg ~]# ls dir_01 dir_02 dir_03 dir_04 test01.txt test02.txt test03.txt test04.txt