seq命令总结

seq命令,打印数字序列。

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

参数:-f,-s,-w,-help

-f:格式化输出浮点数

[[email protected] ~]# seq -f "%0.3f" 5
1.000
2.000
3.000
4.000
5.000

使用-f参数时得注意特定匹配,必须以%开头,且,%必须和efgaEFGA等字符成对出现,不然,命令执行会报错。

[[email protected] ~]# seq -f "%5.3e" 3
1.000e+00
2.000e+00
3.000e+00
[[email protected] ~]# seq -f "%e" 3
1.000000e+00
2.000000e+00
3.000000e+00

格式化输入处理源码如下:

/* If FORMAT is a valid printf format for a double argument, return
   its long double equivalent, allocated from dynamic storage, and
   store into *LAYOUT a description of the output layout; otherwise,
   report an error and exit.  */

static char const *
long_double_format (char const *fmt, struct layout *layout)
{
  size_t i;
  size_t prefix_len = 0;
  size_t suffix_len = 0;
  size_t length_modifier_offset;
  bool has_L;

  for (i = 0; ! (fmt[i] == ‘%‘ && fmt[i + 1] != ‘%‘); i += (fmt[i] == ‘%‘) + 1)
    {
      if (!fmt[i])
        error (EXIT_FAILURE, 0,
               _("format %s has no %% directive"), quote (fmt));
      prefix_len++;
    }

  i++;
  i += strspn (fmt + i, "-+#0 ‘");
  i += strspn (fmt + i, "0123456789");
  if (fmt[i] == ‘.‘)
    {
      i++;
      i += strspn (fmt + i, "0123456789");
    }

  length_modifier_offset = i;
  has_L = (fmt[i] == ‘L‘);
  i += has_L;
  if (fmt[i] == ‘\0‘)
    error (EXIT_FAILURE, 0, _("format %s ends in %%"), quote (fmt));
  if (! strchr ("efgaEFGA", fmt[i]))
    error (EXIT_FAILURE, 0,
           _("format %s has unknown %%%c directive"), quote (fmt), fmt[i]);

  for (i++; ; i += (fmt[i] == ‘%‘) + 1)
    if (fmt[i] == ‘%‘ && fmt[i + 1] != ‘%‘)
      error (EXIT_FAILURE, 0, _("format %s has too many %% directives"),
             quote (fmt));
    else if (fmt[i])
      suffix_len++;
    else
      {
        size_t format_size = i + 1;
        char *ldfmt = xmalloc (format_size + 1);
        memcpy (ldfmt, fmt, length_modifier_offset);
        ldfmt[length_modifier_offset] = ‘L‘;
        strcpy (ldfmt + length_modifier_offset + 1,
                fmt + length_modifier_offset + has_L);
        layout->prefix_len = prefix_len;
        layout->suffix_len = suffix_len;
        return ldfmt;
      }
}

-s:使用替他字符串做分隔符,默认分隔符是换行符

[[email protected] ~]# seq -s "w" 5

1w2w3w4w5

[[email protected] ~]# seq 5

1

2

3

4

5

[[email protected] ~]#

-w:数字显示宽度,不足的前面补0

[[email protected] ~]# seq -w 10
01
02
03
04
05
06
07
08
09
10
[[email protected] ~]# seq 10
1
2
3
4
5
6
7
8
9
10
[[email protected] ~]#

--help:显示帮助页

[[email protected] ~]# seq --help
Usage: seq [OPTION]... LAST
  or:  seq [OPTION]... FIRST LAST
  or:  seq [OPTION]... FIRST INCREMENT LAST
Print numbers from FIRST to LAST, in steps of INCREMENT.
……
时间: 2024-10-08 11:51:35

seq命令总结的相关文章

seq命令详解太实例操作

seq命令总结 基本用法 seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 以指定增量从首数开始打印数字到尾数. 选项: -f, --format=格式 使用printf 样式的浮点格式 -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n) -w, --equal-width 在列前添加0 使得宽度相同 实例:输出10个数 [[email protected] ]# seq 10 1 2 3 4 5 6 7 8

linux下seq命令

seq命令:用于产生一个数到另一个数的整数 例1: [[email protected] 0702]# seq 1 5 1 2 3 4 5 [[email protected] 0702]# seq 5 1 2 3 4 5 seq 1 5和seq 5的结果是一样的,未指定起始值默认是从1开始 例2:产生一组在7和30之间的整数,间隔为3 [[email protected] 0702]# seq 7 3 30 7 10 13 16 19 22 25 28 例3: -w 输出结果同宽,不足用0填补

seq 命令

seq命令用于产生从某个数到另外一个数之间的所有整数. 语法 seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 选项 -f, --format=格式 使用printf 样式的浮点格式 -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n) -w, --equal-width 在列前添加0 使得宽度相同 实例 -f选项:指定格式 #seq -f"%3g" 9 11 9 10 11 %后面指定数字的位数 默

seq命令

seq命令用于输出数字序列.支持正数序列.负数序列.小数序列. seq [OPTION]... LAST # 指定输出的结尾数字,初始值和步长默认都为1 seq [OPTION]... FIRST LAST # 指定开始和结尾数字,步长默认为1 seq [OPTION]... FIRST INCREMENT LAST # 指定开始值.步长和结尾值 OPTION: -s:指定分隔符,默认是\n. -w:使用0填充左边达到数字的最大宽度. 使用示例: [[email protected] ~]# s

seq 命令详解

seq命令的使用 作用:seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式.宽度.分割符号进行控制 语法: [1] seq [选项]    尾数 [2] seq [选项]    首数  尾数 [3] seq [选项]    首数  增量 尾数 (seq 起始值 步长 终止值) 选项: -f, --format=格式    按照指定的格式输出,不能和-f一起用(在不指定格式的情况下,默认格式为'%g') -s, --separator=

shell中lsort,uniq,cut,wc,seq命令使用

sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 [[email protected] ~]# sort [-fbMnrtuk] [file or stdin] 选项与参数: -f  :忽略大小写的差异,例如 A 与 a 视为编码相同: -b  :忽略最前面的空格符部分: -M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法: -n

seq命令用法

sed    打印(显示)一组数的数列    用法seq    [option]    尾数seq 10    #打印1-10(不输入首数的情况默认首数为1)12345678910        seq    [option]    首数    尾数seq 5 8 #打印5-8之间的整数5678 seq    [option]    首数    递增的量    尾数seq 1 2 10 #显示1-10之间,以首数1开始,增量为2的整数(如果忽略增量,增量默认为1)13579 seq    -f 

linux的seq命令

seq 序列 seq 1 5 |tac 用vi 或者vim 打开文件的时候再命令模式下输入:set nu会显示行号 使用sed 命令来打印某段数据 -n 表示取消默认打印 sed -n 20,30p tt.txt 使用sed 也可以只打印某一行sed -n 30p tt.txt -n 表示取消默认打印 使用awk 命令来实现打印某一段内容 awk 常见的用法 awk '{ }' 单引号里的花括号里写 逻辑 NR 表示行号 $0表示把符合条件的内容打印出来 awk '{if(NR>19&&am

linux基础篇-20,seq命令的用法

seq 用法:seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数 以指定增量从首数开始打印数字到尾数. 用于产生从某个数到另外一个数之间的所有整数 [[email protected] ~]# seq 1 5 1 2 3 4 5 [[email protected] ~]# seq  5 1 2 3 4 5 范例,循环取出$1到$#的值 取出键盘输入的值 #!/bin/bash # for I in `seq 1 $#`;do