shell等差、等比数列和数组拼接

2023-10-27

arithmetic progression

搜参数时,参数空间可能由一些散装的值和一个等差/比数列组成,如:

…tune α \alpha α from 0.01, 0.99, and 0.1 to 0.9 at an increment of 0.1 per step…

其中 0.01 和 0.99 是没什么规律的散装值,0.1 ~ 0.9 是等差数列。在 shell 中要放在同一个数组里,可以写作:

ALPHA=(0.01 0.99 `seq 0.1 0.1 0.9`)
echo ${ALPHA[@]}  # 0.01 0.99 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

等差数列可以简单由 seq 生成,其中三个参数顺序是初值、步长、终值,是闭区间(而是前闭后开)。

geometric progression

等比就是把等差放上指数,要额外的运算命令。bc 在 docker 镜像中可能没有,可以用 awk,如:

λ \lambda λ from 0.01 to 10 at a product of 10 per step…

写成:

LAMBDA=($(seq -2 1 1 | awk '{print 10^$1}'))  # 套一层括号稳一点,见下一节
echo ${LAMBDA[@]}  # 0.01 0.1 1 10

potential bug

有两种遍历的写法:

  1. 枚举下标,再用下标索引
  2. 直接枚举值

枚举下标可以用来同步遍历多个数组(即 python 的 zip),但这种方法在生成序列时不套括号的话会出事;枚举值套不套都行,在遍历单个数组时方便。

echo --- 1. A、B 双双出事
A=$(seq 1 1 5)  # 没套括号
B=${A[@]}  # 也没套

for _a in $(seq 0 `expr ${#A[@]} - 1`); do
    a=${A[_a]}
    for _b in $(seq 0 `expr ${#B[@]} - 1`); do
        b=${B[_b]}

        echo a: $a, b: $b  # 会一次过输出「a: 1 2 3 4 5, b: 1 2 3 4 5」
    done
done

echo --- 2. C 正常,D 出事
C=($(seq 1 1 5))  # 套了
D=${C[@]}  # 没套

for _c in $(seq 0 `expr ${#C[@]} - 1`); do
    c=${C[_c]}
    for _d in $(seq 0 `expr ${#D[@]} - 1`); do
        d=${D[_d]}

        echo c: $c, d: $d  # 形如「c: 1, d: 1 2 3 4 5」
    done
done

echo --- 3. E、F 都正常
E=($(seq 1 1 5))  # 套了
F=(${E[@]})  # 套了

for _e in $(seq 0 `expr ${#E[@]} - 1`); do
    e=${E[_e]}
    for _f in $(seq 0 `expr ${#F[@]} - 1`); do
        f=${F[_f]}

        echo e: $e, f: $f  # 形如「e: 1, f: 1」
    done
done

echo --- 4. 套不套都行写法
for a in ${A[@]}; do
    for b in ${B[@]}; do
        echo a: $a, b: $b  # 形如「a: 1, b: 1」
    done
done

for c in ${C[@]}; do
    for d in ${D[@]}; do
        echo c: $c, d: $d  # 形如「c: 1, d: 1」
    done
done

for e in ${E[@]}; do
    for f in ${F[@]}; do
        echo e: $e, f: $f  # 形如「e: 1, f: 1」
    done
done

References

  1. Shell中使用seq生成等差数组
  2. Shell数组拼接,Shell数组合并
  3. How to concatenate arrays in bash?
  4. Linux awk 命令
  5. awk 简单用法(内置函数)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell等差、等比数列和数组拼接 的相关文章

  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • bash 支持字边界正则表达式吗?

    我试图在再次添加该单词之前匹配列表中是否存在该单词 以避免重复 我正在使用 bash 4 2 24 并尝试以下操作 foo bmyword b also foo
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 在 bash 中使用单个命令为 shell 变量分配默认值

    我对 bash 3 00 shell 脚本中的变量进行了大量测试 如果未设置变量 则它会分配默认值 例如 if z VARIABLE then FOO default else FOO VARIABLE fi 我似乎记得有一些语法可以在一行
  • 如何在递归调用函数时阻止 bash 创建子 shell

    这是一个计算阶乘的简单 shell 函数 bin bash function factorial if 1 lt 2 then echo 1 else echo 1 factorial 1 1 fi factorial 1 但我发现这个脚本
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 如何制作一个 bash 脚本来同时创建 40 个程序实例?

    我是新来的bash and Linux 我编写了一个程序 我想创建多个同时实例 现在 我通过打开 10 个新终端 然后运行该程序 10 次 我运行的命令是php home calculatedata php 使用 bash 脚本执行此操作的
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • Pure Bash 替换捕获组

    我有这个示例字符串 test string 13A6 该字符 数字可以是从 0 到 9 以及从 A 到 F 我想要这个输出 1 3 A 6 我有这个工作 result echo test string sed s g 我想在没有 sed 的

随机推荐

  • Python 计算机视觉(十五)—— 图像特效处理

    参考的一些文章以及论文我都会给大家分享出来 链接就贴在原文 论文我上传到资源中去 大家可以免费下载学习 如果当天资源区找不到论文 那就等等 可能正在审核 审核完后就可以下载了 大家一起学习 一起进步 加油 目录 前言 1 毛玻璃特效 2 浮
  • 【CV】第 16 章:结合计算机视觉和强化学习

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • sharding-jdbc异步执行bug UnsupportedOperationException

    Cause java lang UnsupportedOperationException Cannot support database type MySQL 注册时异步bug 优先注册即可NewInstanceServiceLoader
  • C++智能指针weak_ptr详解

    一 介绍 std weak ptr 是一种智能指针 通常不单独使用 只能和 shared ptr 类型指针搭配使用 可以视为 shared ptr 指针的一种辅助工具 借助 weak ptr 类型指针可以获取 shared ptr 指针的一
  • 川教版计算机三年级下册教案,川教版小学三年级下册信息技术教案(全册)

    川教版小学三年级下册信息技术教案 全册 小学学年度第二学期 信息技术 教学工作计划 一 学情分析 孩子们经过了三年级上期的学习 大部分孩子已经养成了良好的学习习惯 本学期教师要继续保护并且激发学生的学习热情 培养孩子的自信心 教给孩子科学的
  • 音视频开发二:音视频知识总结

    文章目录 简介 简单理解 音视频原理 音视频理论基础 音频 声音介绍 为什么要存在数字音频 什么是数字音频 从 模拟信号 到 数字化 的过程 1 采样 2 量化 3 编码 音频存储空间 音频编码 音频解码 视频 颜色模型 光和颜色 YUV
  • idea单元测试时,@Test爆红解决方案

    如果出现以下单元测试 Test爆红 第一种解决方案 选中 alt enter 点Add Maven dependency 选中下图第一个选项 之后再选中注解 Test 同时按alt enter 便可解决 第二种解决方案 点击pom xml文
  • java url加密_Java实现url加密处理的方法示例

    本文实例讲述了Java实现url加密处理的方法 分享给大家供大家参考 具体如下 package test import java security Key import java security SecureRandom import j
  • jsp实现简易计算器

    一 案例演示 输入两个数实现加减乘除 结果输出到页面上 二 实现步骤 1 addall jsp 简易的jsp代码 有两个输入框 四个提交按钮
  • 设计一个学生类 Student 包含姓名、成绩两个属性。定义一个无参的构造方法和一个接收两个参数的构造方法。

    请按照以下要求设计一个学生类 Student 并进行测试 要求如下 Student 类中包含姓名 成绩两个属性 分别给这两个属性定义两个方法 一个方法用于设置值 另一个方法用于获取值 Student 类中定义一个无参的构造方法和一个接收两个
  • OpenGL ES EGL介绍

    前面已经在android平台上使用OpenGL ES的API了解了如何创建3D图形已经使用FBO渲染到纹理进行一些其他的操作 起初我学习OpenGL ES的目的就是为了研究Android平台上录制屏幕的方案 到目前为止 基础知识已经具备了
  • 稀疏矩阵 存储格式 COO CSR DIA ELL HYB

    稀疏矩阵是指矩阵中的元素大部分是0的矩阵 事实上 实际问题中大规模矩阵基本上都是稀疏矩阵 很多稀疏度在90 甚至99 以上 因此我们需要有高效的稀疏矩阵存储格式 本文总结几种典型的格式 COO CSR DIA ELL HYB 1 Coord
  • 低代码,或将颠覆开发行业?

    前言 传统的软件开发过程往往需要耗费大量的时间和精力 因为开发人员需编写复杂的代码以完成各种功能 低代码行业的发展 正好解决了这个问题 让复杂的代码编写一去不复返了 文章目录 前言 引入 强大的平台 总结 引入 低代码平台 是一种通过可视化
  • opencv滤波及C++代码实现(高斯,中值,均值,双边)

    图像平滑 图像平滑的目的之一是消除噪声 二是模糊图像 从信号频谱的角度来看 信号缓慢变化的部分在频率域表现为低频 迅速变化的部分表现为高频 图像在获取 储存 处理 传输过程中 会受到电气系统和外界干扰而存在一定程度的噪声 图像噪声使图像模糊
  • 如何给Makefile指定自己想用的gcc/g++版本(编译开源项目acl-dev/acl库时的经历)

    最近在Github上找到了一个很不错的C 服务器框架库 所以Clone了一份想试试 下图是该项目首页 项目主持人也给出了相应平台的库编译方式 此处只涉及其常用的三个库 以上是三库合一的编译方式 当然也可独自编译 如果这样 需要注意一点 因为
  • 全虚拟化和半虚拟化的特点和区别

    全虚拟化 全虚拟化是通过客户机和宿主机之间一个虚拟化逻辑层Hypervisor来完全模拟底层硬件细节 半虚拟化 半虚拟化是通过实现修改的客户机操作系统内核共享宿主机底层硬件来实现 全虚拟化的优缺点 优点 操作系统内核不需要做特殊配置 部署便
  • 华为OD机试真题- 战场索敌-2023年OD统一考试(B卷)

    题目描述 有一个大小是NxM的战场地图 被墙壁 分隔成大小不同的区域 上下左右四个方向相邻的空地 属于同一个区域 只有空地上可能存在敌人 E 请求出地图上总共有多少区域里的敌人数小于K 输入描述 第一行输入为N M K N表示地图的行数 M
  • 区块链学习笔记二之区块链的加密技术

    概述 区块链最常见的用途是消除交易双方的中间环节 举个例子来说 学位认证的过程 当你投递简历到企业时 企业一般需要验证你的学位在类似于学信网等第三方验证平台可查 这相当于依托第三方验证平台验证你的过往的学习证明 MIT首推出基于区块链技术的
  • vue-cli3.0+antd+steps

    前言 这里对antd的步骤条进行二次封装 实现效果 实现步骤 第一 antd steps vue
  • shell等差、等比数列和数组拼接

    arithmetic progression 搜参数时 参数空间可能由一些散装的值和一个等差 比数列组成 如 tune alpha from 0 01 0 99 and 0 1 to 0 9 at an increment of 0 1 p