iT邦幫忙

DAY 5
2

昨天看了一直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

很容易就建立了檔案.


上一篇
什麼都說好的小敏
下一篇
洗牌王子
系列文
蠻可愛的指令與程式30

尚未有邦友留言

立即登入留言