seq用法

发布时间 2023-12-26 16:48:52作者: 夜夜漫笔

seq命令使用说明

 

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