参考资料
一. 基本语法
seq [OPTION] 结束值
seq [OPTION] 起始值 结束值
seq [OPTION] 起始值 步长 结束值
⏹OPTION
-f
:指定输出格式%.2f
:浮点数格式,保留2位小数。%05g
:前头补零位数,1
会处理为000001
-s
:指定分隔符,默认为换行符-w
:为输出的数字补全宽度,保持一致。
例如输出1到10,最大数字为两位,则最终输出01到10
二. 选项
2.1 -f 格式化输出
⏹保留2位小数
fengyehong@ubuntu:~$ seq -f "%.2f" 1 0.5 3
1.00
1.50
2.00
2.50
3.00
⏹前头数字补齐到3位
fengyehong@ubuntu:~$ seq -f "%05g" 1 5
00001
00002
00003
00004
00005
⏹格式化输出文件名
# 方式1:多个命令配合,较为繁琐
fengyehong@ubuntu:~$ seq -f "%02g" 1 6 | xargs -I {} echo "host{}_info.txt"
host01_info.txt
host02_info.txt
host03_info.txt
host04_info.txt
host05_info.txt
host06_info.txt
# 方式2:直接通过seq命令格式化输出
fengyehong@ubuntu:~$ seq -f "host%02g_info.txt" 1 6
host01_info.txt
host02_info.txt
host03_info.txt
host04_info.txt
host05_info.txt
host06_info.txt
2.2 -s 指定分隔符
- 默认情况下,分隔符是换行符
- 通过
-s
指定分隔符是换行符之外的符号时,可在一行输出
fengyehong@ubuntu:~$ seq 1 5
1
2
3
4
5
# 通过指定分隔符为逗号,从而实现一行显示
fengyehong@ubuntu:~$ seq -s ',' 1 10
1,2,3,4,5,6,7,8,9,10
2.3 -w 输出数字补齐宽度
⏹起始值和结束值的长度一样,此时-w
无效果
fengyehong@ubuntu:~$ seq -w 1 5
1
2
3
4
5
⏹起始值和结束值的长度不同,以长度最长的结束值的长度为基准补齐
fengyehong@ubuntu:~$ seq -w 1 10
01
02
03
04
05
06
07
08
09
10
三. 小案例
3.1 递减序列
⏹生成从10到2的递减序列(步长为2)
fengyehong@ubuntu:~$ seq 10 -2 2
10
8
6
4
2
3.2 批量创建测试文件
⏹批量创建1到12的测试文件(步长为2)
fengyehong@ubuntu:~$ seq -w 1 2 12 | xargs -t -I {} touch file_{}.txt
touch file_01.txt
touch file_03.txt
touch file_05.txt
touch file_07.txt
touch file_09.txt
touch file_11.txt
3.3 批量下载文件
- 配合
xrags
和wget
命令批量下载文件 -n 1
:每一项作为一个参数传入--max-procs=3
:开启3线程
fengyehong@ubuntu:~$ seq 1 10 | xargs -p -n 1 --max-procs=3 -I {} wget http://example.com/file{}
wget http://example.com/file1 ?...n
wget http://example.com/file2 ?...n
wget http://example.com/file3 ?...n
wget http://example.com/file4 ?...n
wget http://example.com/file5 ?...n
wget http://example.com/file6 ?...n
wget http://example.com/file7 ?...n
wget http://example.com/file8 ?...n
wget http://example.com/file9 ?...n
wget http://example.com/file10 ?...n