seq命令-生成数字序列

seq是一个用于生成数字序列的命令,有几个常用参数,可以帮助你生成不同格式和范围的序列。以下是一些常用参数:

  • -f, --format=FORMAT: 定义输出的格式。你可以使用格式化字符串,例如 %g, %f, %e 等。

  • -s, --separator=STRING: 指定输出数字之间的分隔符,默认为换行符。例如,seq -s ", " 1 5 会输出 1, 2, 3, 4, 5。

  • -w, --equal-width: 使所有输出数字具有相同的宽度,前面补零。例如,seq -w 1 10 会输出 01, 02, ..., 10。

  • -h, --help: 显示帮助信息。

  • -V, --version: 显示版本信息。

-f参数三个格式化方式的示例

%g:

  • seq -f "%g" 1 0.5 2 输出:1, 1.5, 2

  • seq -f "%g" 0.0001 0.0001 0.0005 输出:0.0001, 0.0002, 0.0003, 0.0004, 0.0005

%f: _ seq -f "%.2f" 1 0.5 2 输出:1.00, 1.50, 2.00 _ seq -f "%.1f" 1 0.3 1.5 输出:1.0, 1.3, 1.5

%e:

  • seq -f "%e" 1 0.5 2 输出:1.000000e+00, 1.500000e+00, 2.000000e+00

  • seq -f "%e" 0.0001 0.0001 0.0005 输出:1.000000e-04, 2.000000e-04, 3.000000e-04, 4.000000e-04, 5.000000e-04

应用示例

批量添加 10 个用户,用户名为 user01 - user10,密码为 user 后面跟 5 个随机字符

#!/bin/bash
#1 是产生 0 -10 的数并按照格式输出,2 是产生密码随机数并截取,3 是命令行添加密码 

for i in `seq -f "%02g" 1 10`;do
    useradd user$i
    echo "user$i`echo $RANDOM|md5sum|cut -c 1-5`" | passwd --stdin user$i >/dev/null 2>&1
done

最后更新于