生成数字序列命令:seq,shuf
7.1.seq
功能:打印数字序列
语法:seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
常用选项:
-f 使用printf样式格式
-s 指定分隔符,默认换行符\n
-w 等宽,用0填充
示例:
数字序列:
方法1: [[email protected] ~]# 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: 通过指定步长,所谓步长就是一步之长 [[email protected] ~]# seq 1 5 20 #这里的步长就是5 1 6 11 16 方法4: [[email protected] ~]# 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一起使用 [[email protected] ~]# 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. [[email protected] ~]# seq -w 1 20 #数字前面带0 01 ............... 20
-s选项:
[[email protected] ~]# seq -s" " -f"str%03g" 9 11 #空格分隔 str009 str010 str011 [[email protected] ~]# seq -s"+" 1 10 #+号分隔 1+2+3+4+5+6+7+8+9+10 [[email protected] ~]# seq -s"\t" 1 10 #有正则的这样写虽然打印了,但是违背了题意 1\t2\t3\t4\t5\t6\t7\t8\t9\t10 [[email protected] ~]# seq -s "$(echo -e "\t")" 1 10 #这样写才会达到效果。制表符为分隔打印 1 2 3 4 5 6 7 8 9 10 [[email protected] ~]# seq -s "$(echo -e "\n")" 1 10 12345678910 [[email protected] ~]# seq -s "$(echo -e "\n\n")" 1 10 #两个效果一样 12345678910 12345678910
批量创建文件:
方法1:
[[email protected] ~]# awk ‘BEGIN { while (num < 10 ) printf "dir%03d\n", ++num ; exit}‘ | xargs mkdir #使用awk来获取文本 [[email protected] ~]# ls anaconda-ks.cfg dir003 dir006 dir009 install.log.syslog dir001 dir004 dir007 dir010 system.sh dir002 dir005 dir008 install.log
方法2:
[[email protected] ~]# 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:
[[email protected] ~]$ seq -s ‘ > > ‘ 1 5 1 2 3 4 5
7.2.shuf
功能:生成随机序列
常用选项:
-i 输出数字范围
-o 结果写入文件
示例:
输出范围随机数:
[[email protected] ~]# seq 10 1 2 3 4 5 6 7 8 9 10 [[email protected] ~]# seq 10|shuf 3 7 4 6 8 9 5 10 2 [[email protected] ~]# shuf -i 1-10 10 5 2 7 9 8 4 1 6 3
时间: 2024-10-12 20:50:29