Linux 中seq 指令的用法
用于産生從某個數到另外一個數之間的所有整數
用法:seq [選項]... 尾數
或:seq [選項]... 首數 尾數
或:seq [選項]... 首數 增量 尾數
以指定增量從首數開始列印數字到尾數。
-f, --format=格式 使用printf 樣式的浮點格式
-s, --separator=字元串使用指定字元串分隔數字(預設使用:\n)
-w, --equal-width 在列前添加0 使得寬度相同
--help 顯示此幫助資訊并退出
--version 顯示版本資訊并退出
‐f, ‐‐format=FORMAT use printf style floating‐point FORMAT (default: %g)
‐s, ‐‐separator=STRING use STRING to separate numbers (default: \n)
‐w, ‐‐equal‐width equalize width by padding with leading zeroes
從1循環到100的兩種方法(bash )
for x in `seq 1 100`;do echo $x;done
for x in {1..100};do echo $x;done
‐f 選項 指定格式
#seq ‐f"%3g" 9 11
9
10
11
% 後面指定數字的位數 預設是"%g",
"%3g"那麼數字位數不足部分是空格
#sed ‐f"%03g" 9 11 這樣的話數字位數不足部分是0
% 前面制定字元串
seq ‐f "str%03g" 9 10
str009
str010
‐w 指定輸出數字同寬,不能和‐f 一起用
seq ‐w ‐f"str%03g" 9 11
seq: format string may not be specified when printing equal width strings
seq ‐w 98 100
098
099
100
輸出是同寬的
‐s 指定分隔符 預設是回車
seq ‐s" " ‐f"str%03g" 9 11
str009 str010 str011
要指定\t 做為分隔符号
seq ‐s"`echo ‐e "\t"`" 9 11
如用\n\n, 以兩個空格 , 便得寫成
seq ‐s '
>
> ' 1 3
1
2
3
幾個例子
seq ‐f 'dir%03g' 1 10 | xargs mkdir
mkdir $(seq ‐f 'dir%03g' 1 10)
printf 'dir%03d\n' {1..10} | xargs mkdir
mkdir `printf 'dir%03d ' {1..10}`
awk 'BEGIN { while (num < 10 ) printf "dir%03d\n", ++num ; exit}' | xargs mkdir
for i in `seq ‐f '%02g' 1 20`
do
if ! wget ‐P $HOME/tmp ‐c [img]http://www.xxxsite.com/photo/$i.jpg[/img] ; then
wget ‐P $HOME/tmp ‐c $_
fi
done
$ aNumList=$(seq 10);
$ echo $aNumList
1 2 3 4 5 6 7 8 9 10
aNumList 得到是字元串,不同之處以:空格分隔開。在linux 裡面,可以把它看
作是list. 可以通過for…in 循環讀取。
$ for i in $aNumList;do echo $i;done;
如果需要生成array 隻需要将$(seq 10) 再加個”()”即可。
$ aNumList=($(seq 10));
$ echo ${#aNumList[@]}
長度是100 的數組。
echo {1..10}
for a in {1..10};do echo $a;done
#!/bin/bash
for i in `seq 1 10`或用for i in $(seq 1 10)
echo $i