seq 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文本处理命令族(见文本处理命令族)。需要"从 1 到 100"这种序列,它比手写快。
seq 生成一个等差数列(默认步长 1),每行一个数。常喂给 for 循环或 xargs 批量干活。
一、基本用法
bash
seq 5 # 1 2 3 4 5(每行一个)
seq 2 5 # 2 3 4 5(起始 2)
seq 1 2 10 # 1 3 5 7 9(起 步长 止)三种形式:
seq 末、seq 起 末、seq 起 步长 末。步长可为负(倒序):seq 10 -1 1。
二、等宽补零:-w
bash
seq -w 1 10 # 01 02 ... 10(等宽,便于排序/命名)
seq -w 1 100 # 001 002 ... 100
-w(equal width)按最大数宽度补前导零,生成001/002这种,做文件命名、排序时特别整齐(避免 1,10,11,2 的乱序)。
三、分隔符:-s
bash
seq -s, 1 5 # 1,2,3,4,5(逗号分隔而非换行)
seq -s' ' 1 3 # 1 2 3
-s(separator)改分隔符,方便拼成一行喂给其他命令。配合$(seq -s, 1 5)生成列表。
四、实战:循环批量
bash
for i in $(seq 1 10); do
echo "处理第 $i 个"
done
# 或并行:
seq 1 100 | xargs -P4 -I{} ./job {} # 见 [xargs](/linux/cmd/xargs.md)经典用法:
for i in $(seq ...)做定次循环;或seq | xargs -P并行派发任务。比 bash 大括号{1..100}的优势是支持变量(seq 1 $N),大括号不支持变量展开。
相关命令
一句话总结
seq = 生成数字序列:seq 起 步长 末(步长可负倒序);-w 等宽补零(001)便于命名排序;-s 改分隔符;多用于 for i in $(seq 1 $N) 定次循环或 seq | xargs -P 并行派发。比 bash 大括号 {1..N} 好在支持变量。