You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中为数组所有索引统一增加指定数值(以+2为例)?

实现Bash数组索引加2的简便方法

有几种简单直接的方式可以达成需求:

方法一:借助awk处理原输出

在你原本的paste命令后通过awk修改索引列,直接给原索引加2:

arr=(a b c d e f)
paste <(printf "%s\n" "${!arr[@]}") <(printf "%s\n" "${arr[@]}") | awk '{print $1+2 "\t" $2}'

awk会读取每行的第一列(原索引数值),加2后和第二列的数组值用制表符拼接输出,刚好匹配你要的格式。

方法二:循环数组直接计算

遍历数组的索引,手动计算原索引+2后输出对应内容:

arr=(a b c d e f)
for ((i=0; i<${#arr[@]}; i++)); do
    echo -e "$((i+2))\t${arr[i]}"
done

${#arr[@]}获取数组的总长度,循环中i从0开始遍历每个索引,$((i+2))计算出新索引,echo -e用来解析制表符\t实现对齐。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:04:57