如何迭代 for 循环并创建自定义字符串

菜鸟

我有一个 bash 脚本,我在其中使用for循环来生成数字列表(增加一)。

在我的循环中,我echo结合使用tee来构建我的字符串。

然后我使用sed我的数字“列表”(作为文件输入),然后格式化它。

由于我使用for循环来生成此列表(文本文件),是否有更好、更有效的方法来创建我的字符串(它在循环时被附加)以包含双引号的值,而不必先写入文件?

这是我的代码:

#!/usr/local/bin/bash

if [[ $# != 3 ]]; then
   echo "Usage:   ./crIPRange.sh <octet> <start#> <ending#>" 2>&1
   echo "Example: ./crIPRange.sh 10.1.2 100 150" 2>&1
   exit 1
fi

_octet="$1"
_startIP="$2"
_IPList="List1.out"
_IPListFinal="List2.out"

for (( c=$2; c<=$3; c++ ))
do
  echo "${_octet}.$c" | tee >> ${_IPList}
  sed -E 's/^(.*)$/"\1"/' ${_IPList} | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/,/g' |  tee > ${_IPListFinal}
done

换句话说,我在想我不一定需要将它作为列表写入文件的步骤?

所以最后,我有 (2) 个输出文件,我真的只需要我的最终输出。我会使用类似的东西printf吗?

本杰明·W。

这看起来是一种制作逗号分隔列表的极其复杂的方法。对于每个条目,您的 sed 命令都会遍历整个文件,只是用逗号替换单个换行符。将 sed 移到循环外并仅执行一次已经可以稍微提高效率。

但是您根本不需要 sed (并且不需要中间文件)。此解决方案使用我们想要的元素填充数组,然后将其打印为单个字符串并IFS设置为逗号:

#!/bin/bash

(( $# != 3 )) && echo "Wrong number of arguments" >&2

subnet=$1
from=$2
to=$3

for (( i = from; i <= to; ++i )); do
    arr+=("\"$subnet.$i\"")
done

IFS=,

echo "${arr[*]}"

请注意,您的比较if [[ $# != 3 ]]使用!=字符串意思,但应该使用-ne数字。或者甚至更容易,(( ))正是为此而生。

用法和输出:

$ ./octet 1.2.3 10 15
"1.2.3.10","1.2.3.11","1.2.3.12","1.2.3.13","1.2.3.14","1.2.3.15"

或者,如果你不想要一个函数,你可以只使用大括号扩展和tr

$ echo \"1.2.3.{10..15}\" | tr ' ' ,
"1.2.3.10","1.2.3.11","1.2.3.12","1.2.3.13","1.2.3.14","1.2.3.15"

但是,这不能被参数化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从自定义格式的字符串创建JSON

来自分类Dev

如何通过自定义子字符串相等性仅迭代不同的字符串值

来自分类Dev

如何在MySQL中创建自定义排序顺序并检查字符串的开头?

来自分类Dev

Dart Polymer:创建时如何在自定义中设置非字符串字段

来自分类Dev

如何自定义字符串数组中动态创建的按钮的click事件?

来自分类Dev

如何在Laravel中为字符串字段创建自定义自动增量

来自分类Dev

如何创建自定义字符串并动态填充它?

来自分类Dev

如何防止自定义字符串类型混合?

来自分类Dev

用自定义值替换字符串并迭代所有出现的

来自分类Dev

如何将 Acumatica 字符串字段自定义为字符串列表?

来自分类Dev

循环创建自定义字符串

来自分类Dev

如何使自定义对象可迭代?

来自分类Dev

如何使自定义对象可迭代?

来自分类Dev

如何为EF模型更改连接字符串或传递自定义连接字符串

来自分类Dev

如何获取具有自定义数字格式的数字的本地化字符串?

来自分类Dev

如何将自定义属性转换为Json字符串

来自分类Dev

如何在Java中生成自定义长度的随机字母数字字符串?

来自分类Dev

如何将JSON字符串转换为自定义对象?

来自分类Dev

如何使pytest显示灯具参数的自定义字符串表示形式?

来自分类Dev

如何从自定义日期字符串获取星期数

来自分类Dev

Android:如何在自定义类中从strings.xml访问字符串数组?

来自分类Dev

如何在SQL连接字符串中添加自定义属性?

来自分类Dev

如何通过字符串正确处理自定义命令?

来自分类Dev

如何使用自定义字符串快速填充缓冲区?

来自分类Dev

如何将自定义对象添加到字符串

来自分类Dev

如何使用自定义DbFunction将字符串转换为十进制

来自分类Dev

如何将自定义事件字符串写入AWS CloudWatch日志

来自分类Dev

如何在自定义Prelude库Protolude中显示字符串

来自分类Dev

带有自定义字符串的下拉菜单,如何检索原始对象?

Related 相关文章

  1. 1

    如何从自定义格式的字符串创建JSON

  2. 2

    如何通过自定义子字符串相等性仅迭代不同的字符串值

  3. 3

    如何在MySQL中创建自定义排序顺序并检查字符串的开头?

  4. 4

    Dart Polymer:创建时如何在自定义中设置非字符串字段

  5. 5

    如何自定义字符串数组中动态创建的按钮的click事件?

  6. 6

    如何在Laravel中为字符串字段创建自定义自动增量

  7. 7

    如何创建自定义字符串并动态填充它?

  8. 8

    如何防止自定义字符串类型混合?

  9. 9

    用自定义值替换字符串并迭代所有出现的

  10. 10

    如何将 Acumatica 字符串字段自定义为字符串列表?

  11. 11

    循环创建自定义字符串

  12. 12

    如何使自定义对象可迭代?

  13. 13

    如何使自定义对象可迭代?

  14. 14

    如何为EF模型更改连接字符串或传递自定义连接字符串

  15. 15

    如何获取具有自定义数字格式的数字的本地化字符串?

  16. 16

    如何将自定义属性转换为Json字符串

  17. 17

    如何在Java中生成自定义长度的随机字母数字字符串?

  18. 18

    如何将JSON字符串转换为自定义对象?

  19. 19

    如何使pytest显示灯具参数的自定义字符串表示形式?

  20. 20

    如何从自定义日期字符串获取星期数

  21. 21

    Android:如何在自定义类中从strings.xml访问字符串数组?

  22. 22

    如何在SQL连接字符串中添加自定义属性?

  23. 23

    如何通过字符串正确处理自定义命令?

  24. 24

    如何使用自定义字符串快速填充缓冲区?

  25. 25

    如何将自定义对象添加到字符串

  26. 26

    如何使用自定义DbFunction将字符串转换为十进制

  27. 27

    如何将自定义事件字符串写入AWS CloudWatch日志

  28. 28

    如何在自定义Prelude库Protolude中显示字符串

  29. 29

    带有自定义字符串的下拉菜单,如何检索原始对象?

热门标签

归档