首页 > 代码库 > 生成数字序列命令(7)

生成数字序列命令(7)

生成数字序列命令:seq,shuf


7.1.seq

功能:打印数字序列

语法:seq [OPTION]... LAST

    seq [OPTION]... FIRST LAST

    seq [OPTION]... FIRST INCREMENT LAST

常用选项:

-f  使用printf样式格式

-s  指定分隔符,默认换行符\n

-w  等宽,用0填充

示例:

数字序列:

方法1:
[root@localhost ~]# seq 10
1
2
3
4
5
6
7
8
9
10
方法2:
for循环
#!/bin/bash
for i in `seq 1 10`;
do
echo $i;
done
或者用
for i in $(seq 1 10)
方法3:
通过指定步长,所谓步长就是一步之长
[root@localhost ~]# seq 1 5 20  #这里的步长就是5
1
6
11
16
方法4:
[root@localhost ~]# seq 20 30  #指定范围
20
21
22
23
24
25
26
27
28
29
30

-f选项:

#seq -f"%3g" 9 11

9

10

11

% 后面指定数字的位数 默认是"%g",

"%3g"那么数字位数不足部分是空格

#sed -f"%03g" 9 11  这样的话数字位数不足部分是0

% 前面制定字符串

seq -f "str%03g" 9 11

str009

str010

str011


-w选项:

不能和-f一起使用
[root@localhost ~]# seq -w -f"str%03g" 9 11
seq: format string may not be specified when printing equal width strings
Try `seq --help‘ for more information.
[root@localhost ~]# seq -w 1 20 #数字前面带0
01
...............
20

-s选项:

[root@localhost ~]# seq -s" " -f"str%03g" 9 11  #空格分隔
str009 str010 str011
[root@localhost ~]# seq -s"+" 1 10   #+号分隔
1+2+3+4+5+6+7+8+9+10
[root@localhost ~]# seq -s"\t" 1 10   #有正则的这样写虽然打印了,但是违背了题意
1\t2\t3\t4\t5\t6\t7\t8\t9\t10
[root@localhost ~]# seq -s "$(echo -e "\t")" 1 10  #这样写才会达到效果。制表符为分隔打印
1       2       3       4       5       6       7       8       9       10
[root@localhost ~]# seq -s "$(echo -e "\n")" 1 10
12345678910
[root@localhost ~]# seq -s "$(echo -e "\n\n")" 1 10  #两个效果一样
12345678910
12345678910

批量创建文件:

方法1:

[root@localhost ~]# awk ‘BEGIN { while (num < 10 ) printf "dir%03d\n", ++num ; exit}‘ | xargs mkdir  #使用awk来获取文本
[root@localhost ~]# ls
anaconda-ks.cfg  dir003  dir006  dir009       install.log.syslog
dir001           dir004  dir007  dir010       system.sh
dir002           dir005  dir008  install.log

方法2:

[root@localhost ~]# mkdir $(seq -f ‘dir%03g‘ 1 10)

方法3:

for i in `seq -f ‘%02g‘ 1 20`doif ! wget -P $HOME/tmp -c [img]http://www.xxxsite.com/photo/$i.jpg[/img] ; thenwget -P $HOME/tmp -c $_fidone

方法4:

[victor@localhost ~]$ seq -s ‘
>
> ‘ 1 5
1
 
2
 
3
 
4
 
5


7.2.shuf

功能:生成随机序列

常用选项:

-i  输出数字范围

-o  结果写入文件

示例:

输出范围随机数:

[root@localhost ~]# seq 10
1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# seq 10|shuf
3
7
4
6
8
9
5
10
2
[root@localhost ~]# shuf -i 1-10
10
5
2
7
9
8
4
1
6
3

本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1930544

生成数字序列命令(7)