昨天看了一直yes的小敏,其中有利用yes產生的測試資料的應用.
但是產生的資料內容都一樣.
yes可以配合cat的功能,產生計數的序列.
如:
$ yes '' | cat -n | head -10 > t1.txt
$ cat t1.txt
1
2
3
4
5
6
7
8
9
10
但是這樣是從1開始,較缺乏彈性.
今天介紹產生序列的 seq.
使用方式較有彈性.
命令格式:
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
例如:
$ seq 10
1
2
3
4
5
6
7
8
9
10
$ seq -f "%04g" 3
0001
0002
0003
$ seq -f "%f" 1.0 0.1 2.0
1.000000
1.100000
1.200000
1.300000
1.400000
1.500000
1.600000
1.700000
1.800000
1.900000
2.000000
$ seq -f "%e" 1.0 0.1 2.0
1.000000e+00
1.100000e+00
1.200000e+00
1.300000e+00
1.400000e+00
1.500000e+00
1.600000e+00
1.700000e+00
1.800000e+00
1.900000e+00
2.000000e+00
也可以利用 -w 產生補0的padding,
$ seq -w 1 10
01
02
03
04
05
06
07
08
09
10
但是這樣使用的寬度取決於最大值.
使用上不如使用-f 這樣的format較具彈性.
例如我們可以用來產生檔名:
$ seq -f "javfile%03g.txt" 10
javfile001.txt
javfile002.txt
javfile003.txt
javfile004.txt
javfile005.txt
javfile006.txt
javfile007.txt
javfile008.txt
javfile009.txt
javfile010.txt
搭配 touch,就可以建立檔案了.
$ touch $(seq -f "jav%04g.avi" 5)
查看一下:
$ ll
-rw-rw-r--. 1 miku miku 0 9月 22 21:44 jav0001.avi
-rw-rw-r--. 1 miku miku 0 9月 22 21:44 jav0002.avi
-rw-rw-r--. 1 miku miku 0 9月 22 21:44 jav0003.avi
-rw-rw-r--. 1 miku miku 0 9月 22 21:44 jav0004.avi
-rw-rw-r--. 1 miku miku 0 9月 22 21:44 jav0005.avi
很容易就建立了檔案.