我以各种顺序迭代数字。我可以按升序显示它们,甚至可以执行以下步骤:
$ seq --separator="," 1 10
1,2,3,4,5,6,7,8,9,10
$ seq --separator="," 1 2 10
1,3,5,7,9
我还能够以相反的顺序显示它们,既不连续也不逐步。
$ seq --separator="," 10 1
$ seq --separator="," 10 2 1
上述命令没有输出。
我的外壳详细信息:
$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
让我知道如何按降序显示数字?
答案1
使用负增量
seq -s, 10 -2 1
10,8,6,4,2
答案2
一般来说,您不想使用seq
,它不可移植(即使在标准 Linux 环境中也是如此)。如果您使用的是 ksh、zsh 或 bash4+,则可以使用大括号扩展:
echo {10..1..2} | tr " " ,
10,8,6,4,2
答案3
纯 bash、ksh 或 zsh 中的另一种方式:
for ((i=10;i>0;i-=2)) ; do echo -n "$i," ; done
纯 POSIX sh 方式:
i=10
while [ "$i" -gt 2 ]; do printf "$i,"; i=$((i-2)); done
echo "$i"
答案4
尝试使用:
seq [OPTION]... FIRST INCREMENT LAST
例子:
$ 序列 10 -1 1