1. 程式人生 > >生成數字序列命令(7)

生成數字序列命令(7)

seq shuff

生成數字序列命令: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

本文出自 “爛筆頭” 博客,請務必保留此出處http://lanbitou.blog.51cto.com/9921494/1930544

生成數字序列命令(7)