seq 命令的用法


一,seq命令的用法

1) seq命令可以輸出連續的數字

輸出固定間隔的數字,或者輸出指定格式的數字,這樣說比較模糊,看示例就很容易理解。
seq命令最簡單的使用方法如下

seq 1 5 # 表示連續輸出1到5,效果如下
1
2
3
4
5

2) seq命令步進輸出

比如從1 開始,每次步進 2 ,最大到10,效果如下。

seq 1 2 10
1
3
5
7
9

3) seq命令常用選項

1.使用這些選項能輸出更多的格式,此處先列出seq命令的常用選項,具體使用會在示例中展示。
-s  # 指定輸出的分隔符,默認為\n,即默認為回車換行
-w  # 指定為定寬輸出,不能和-f一起用
-f  # 按照指定的格式輸出,不能和-w一起使用
2.常用選項示例-s
-s # 選項:指定分隔符,

# 指定加號為分隔符,輸出的數字將會使用"+"連接,默認情況下回車換行(\n)為分隔符。
[root@skyfish-studio-master ~]# seq -s +  10
1+2+3+4+5+6+7+8+9+10


使用如下方法可以使用制表符(\t)作為分隔符,相當於我們鍵盤上的tab鍵。
[root@skyfish-studio-master ~]# seq -s "`echo -e "\t"`"  10
1	2	3	4	5	6	7	8	9	10

# 注意:使用了命令替換,也就是說,先使用echo命令輸出制表符,然后用輸出的制表符作為seq命令輸出數字的連接符。
3.-w 選項:指定為定寬輸出

最大值為11,是兩位數,那么不到兩位的數前面自動用0補全,當然,如果指定的位數最大為三位數字,那么一位數和兩位數前面的位數都會用0補全,也就是說,以最大值的位數為標准寬度,不足標准寬度的數字將會用0補位,示例如下

[root@skyfish-studio-master ~]# seq -w 8 11
08
09
10
11

[root@skyfish-studio-master ~]# seq -w 99 103
099
100
101
102
103

3.-f 選項:按照指定的格式輸出生成的數字

在沒有使用-f選項指定格式時,默認格式為%g,可以理解為使用-f 指定模式為"%g",跟不指定格式沒有任何區別。

[root@skyfish-studio-master ~]# seq 8 11
8
9
10
11
[root@skyfish-studio-master ~]# seq -f '%g' 8 11
8
9
10
11

上述示例中,輸出的數字沒有任何區別,因為在不指定格式的情況下,默認格式為'%g'

那么除了上述的默認格式,我們經常還會使用如下常用格式,"%3g"這種格式表示指定"位寬"為三位,那么數字位數不足部分用空格補位,如下示例中,編號1對應的命令使用的格式為默認格式,與不指定任何格式輸出的結果相同,編號2對應的命令使用的格式表示輸出的數字位寬固定為3位,不足三位的數字用空格在數字左側補齊。

[root@skyfish-studio-master ~]# seq -f '%g' 8 11
8
9
10
11
[root@skyfish-studio-master ~]# seq -f '%3g' 8 11
  8
  9
 10
 11

"%02g" 表示指定位寬為兩位,數字位數不足用0補位,這種寫法跟上述提到的-w選項類似,只不過-w是以指定的最大值的位數為最大位數,而 -f 選項可以直接指定位數,在下例中,我們也對比了-w選項與-f選項的區別。

[root@skyfish-studio-master ~]# seq -w 8 11
08
09
10
11
[root@skyfish-studio-master ~]# seq -f '%02g' 8 11
08
09
10
11
[root@skyfish-studio-master ~]# seq -f '%03g' 8 11
008
009
010
011
[root@skyfish-studio-master ~]# seq -f '%04g' 8 11
0008
0009
0010
0011

例子中的格式中,都包含一個'%',其實 % 前面還可以指定字符串。

例如在屏幕上打印5個名為dir1 , dir2 .. dir5 的字符串,這時候就用到這種寫法。

[root@skyfish-studio-master ~]# seq -f 'dir%g' 1 5
dir1
dir2
dir3
dir4
dir5

4) seq 總結

所以,結合上述示例中的seq命令的特性,再結合其他命令,就能為我們帶來許多方便。

例如一次性創建5個名為dir001 , dir002 .. dir005 的目錄,這時候就用到這種寫法。

mkdir $(seq -f 'dir%03g' 1 10)

# 或者如下命令,與上述命令的效果相同。

seq -f 'dir%03g' 1 5 | xargs mkdir


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM