天天看點

linux指令seq,linux中seq指令用法

NAME

seq - print a sequence of numbers

SYNOPSIS

seq [OPTION]... LAST

seq [OPTION]... FIRST LAST

seq [OPTION]... FIRST INCREMENT LAST

DESCRIPTION

Print numbers from FIRST to LAST, in steps of INCREMENT.

-f, --format=FORMAT

use printf style floating-point FORMAT

-s, --separator=STRING

use STRING to separate numbers (default: \n)

-w, --equal-width

equalize width by padding with leading zeroes

--help display this help and exit

--version

output version information and exit

If FIRST or INCREMENT is omitted, it defaults to 1. That

is, an omitted INCREMENT defaults to 1 even when LAST is

smaller than FIRST. FIRST, INCREMENT, and LAST are inter-

preted as floating point values. INCREMENT is usually pos-

itive if FIRST is smaller than LAST, and INCREMENT is usu-

ally negative if FIRST is greater than LAST. FORMAT must

be suitable for printing one argument of type ‘double’; it

defaults to %.PRECf if FIRST, INCREMENT, and LAST are all

fixed point decimal numbers with maximum precision PREC,

and to %g otherwise.

用于産生從某個數到另外一個數之間的所有整數

例一:

# seq 1 10

結果是1 2 3 4 5 6 7 8 9 10

例二:

#!/bin/bash

for i in `seq 1 10`;

do

echo $i;

done

或者用

for i in $(seq 1 10)

也可以

seq

-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

-f 選項   指定格式

#seq -f"%3g" 9 11

9

10

11

% 後面指定數字的位數 預設是"%g",

"%3g"那麼數字位數不足部分是空格

#sed -f"%03g" 9 11  這樣的話數字位數不足部分是0

% 前面制定字元串

seq -f "str%03g" 9 11

str009

str010

str011

-w 指定輸出數字同寬   不能和-f一起用

seq -w -f"str%03g" 9 11

seq: format string may not be specified when printing equal width strings

seq -w 98 101

098

099

100

101

輸出是同寬的

-s 指定分隔符  預設是回車

seq -s" " -f"str%03g" 9 11

str009 str010 str011

要指定\t 做為分隔符号

seq -s"`echo -e "\t"`" 9 11  #如果要在終端中輸出\t 或者\n,應該是:echo -e "\n" 或者 echo -e "\t"

指定\n\n作為分隔符号

seq -s"`echo -e "\n\n"`" 9 11

19293949596979899910911

得到的是個錯誤結果

不過一般也沒有這個必要  它預設的就是回車作為分隔符

幾個例子

awk 'BEGIN { while (num < 10 ) printf "dir%03d\n", ++num ; exit}' | xargs mkdir

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

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

seq 是Linux 中一個預設的外部指令,一般用作一堆數字的簡化寫法,如

seq 1 10

便會出現

1

2

3

4

5

6

7

8

9

10

它還有三個選項

-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

-f 最常用, 例如一次制做10 個名dir001 , dir002 .. dir010 的目錄,它便很有用途,我們可以

這樣下一個指令便可了

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

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

它用的是printf 的格式, %03g' 代表以三位浮點數,以此方法,如用bash3 的printf

也可作為等價指令

printf 'dir%03d\n' {1..10} | xargs mkdir  或mkdir `printf 'dir%03d ' {1..10}`

awk 當然也可以

awk 'BEGIN { while (num < 10 ) printf "dir%03d\n", ++num ; exit}' | xargs mkdir

這樣會比寫一個腳本快, 不必寫成

for dir in 001 002 003 004 005 006 007 008 009 010

do

mkdir dir${dir}

done

我也常用seq 下載用數字的jpeg , 隻要格式有數字順序便可,尤以一些xxx site

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

-s 選項主要改變輸出的分格符, 預設是\n , 就是newline

如用-s 便可改變, 如

seq -s ' ' 1 10

1 2 3 4 5 6 7 8 9 10  , 以空格作為分格, 但在Gnu 的seq , 好像

不支援\n ,\t ...等字元? 如用\n\n, 以兩個空格, 便得寫成

[[email protected] ~]$ seq -s '

>

> ' 1 5

1

2

3

4

5

\t 便得改變IFS, 如用\t\t

OIFS=$IFS

IFS="\t\t"

seq -s `echo -e $IFS` 1 5

IFS=$OIFS

其它的字元也是這樣吧?

seq指令的作用就是列印出一串有序的數字,它主要有以下3個參數構成:

-f, --format=FORMAT

use printf style floating-point FORMAT (default: %g)

-f 指定列印的格式:

例如:

[[email protected]]# seq -f %05g 2 7

00002

00003

00004

00005

00006

00007

-s, --separator=STRING

use STRING to separate numbers (default: \n)

-s 指定分隔符 預設是回車:

例如:

[[email protected]]# seq -s" " 2 7

2 3 4 5 6 7

-w, --equal-width

equalize width by padding with leading zeroes

-w 輸出是同寬 前面不足的用"0" 補全,即與位數最多的數對齊

例如:

[[email protected]]# seq -w 2 11

02

03

04

05

06

07

08

09

10

11

linux中comm指令用法

linux系統中comm指令用法詳解 linux系統下的comm指令是一個非常實用的檔案對比指令. comm指令功能:   選擇或拒絕兩個已排序的檔案的公共的行. comm指令文法:comm [-12 ...

Linux中find指令用法大全

Linux 查找指令是Linux系統中最重要和最常用的指令之一.查找用于根據與參數比對的檔案指定的條件來搜尋和查找檔案和目錄清單的指令.查找可以在各種條件下使用,您可以通過權限,使用者,組,檔案類型,日 ...

Linux中seq指令的用法

用于産生從某個數到另外一個數之間的所有整數 例一: # seq 1 10 結果是1 2 3 4 5 6 7 8 9 10 例二: #!/bin/bash for i in `seq 1 10`; do ...

linux中tar指令用法

把常用的tar解壓指令總結下,當作備忘: tar -c: 建立壓縮檔案 -x:解壓 -t:檢視内容 -r:向壓縮歸檔檔案末尾追加檔案 -u:更新原壓縮包中的檔案 這五個是獨立的指令,壓縮解壓都要用到其 ...

linux中wc指令用法

Linux系統中的wc(Word Count)指令的功能為統計指定檔案中的位元組數.字數.行數,并将統計結果顯示輸出. 1.指令格式: wc [選項]檔案... 2.指令功能: 統計指定檔案中的位元組數. ...

linux中diff指令用法

diff 命 令是 linux上非常重要的工具,用于比較檔案的内容,特别是比較兩個版本不同的檔案以找到改動的地方.diff在指令行中列印每一個行的改動.最新版 本的diff還支援二進制檔案.diff程 ...

Linux中rpm指令用法聽語音

rpm 是紅帽(RedHat)軟體包管理工具,實作類似于 Windows 中的添加/删除程式功能.下面,就來向大家介紹 rpm 指令的用法. 工具/原料 CentOS 一.rpm常用參數 1 rpm ...

Linux中ls指令用法

ls 指令的含義是list顯示目前目錄中的檔案名字.注意不加參數它顯示除隐藏檔案外的所有檔案及目錄的名字. 1)ls –a 顯示目前目錄中的所有檔案,包含隐藏檔案 指令: [email protected] ...

Linux中fuser指令用法詳解

描述: fuser可以顯示出目前哪個程式在使用磁盤上的某個檔案.挂載點.甚至網絡端口,并給出程式程序的詳細資訊. fuser顯示使用指定檔案或者檔案系統的程序ID. 預設情況下每個檔案名後面跟一個字母 ...

随機推薦

&lbrack;HTML&rsqb;輸入框被限制輸入某些類型資料

ENTER鍵可以讓光标移到下一個輸入框 隻能是中文& ...

SQL Server 全文索引建立

在安裝資料庫管理系統SQL Server 後,預設情況下全文索引的服務是沒有開啟的 ,是以首先需要先開啟服務,在sql server配置管理器中 (sql server configuration M ...

iOS 字元串轉son &&num;160&semi;json轉字元串

+ (NSString*)dictionaryToJson:(NSDictionary *)dic {     NSError *parseError = nil;    NSData *jsonDa ...

&lpar;轉&rpar;RSA算法原理(二)

作者: 阮一峰 日期: 2013年7月 4日 上一次,我介紹了一些數論知識. 有了這些知識,我們就可以看懂RSA算法.這是目前地球上最重要的加密算法. 六.密鑰生成的步驟 我們通過一個例子,來了解 ...

HDU 5228

#include #include *]; int main(){ int t; scanf("%d",&t) ...

【C&num;進階系列】04 類型基礎

關于System.Object 所有類型都從System.Object派生而來. System.Object的公共方法中ToString()一般是傳回對象的類型的全名,隻有Int32這些類型将其重寫後 ...

AngularJS開發指南3:Angular主要組成部分以及如何協同工作

AngularJS的主要組成部分是: 啟動(startup) - 展示“hello world!” 執行期(runtime) - AngularJS 執行期概覽 作用域(scope) - 視圖和控制器 ...

docker-compose bug

annot mount volume over existing file, file exists /var/lib/docker/aufs/mnt/0ac71fed1af802a4ecf4a93b ...

OpenJudge計算概論-第二個重複出現的數

/*======================================================================== 第二個重複出現的數 總時間限制: 1000ms 内 ...

在CSDN開通部落格專欄後如何釋出文章(圖文)

今天打開電腦登上CSDN發現自己授予了專欄勳章,有必要了解如何在專欄釋出文章. 很感謝已經有前輩給出了圖文教程,此文章轉載自部落格:http://blog.csdn.net/upi2u/article/ ...