天天看點

Linux 中seq 指令的用法

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

繼續閱讀