天天看点

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/ ...