小编Adh*_*n37的帖子

Shell - 重构连接数字的字符串正则表达式

我正在尝试重构我的脚本以使其可读并且仍然可以在一行中使用。

我的脚本做:

  • 字符串 (GXXRXXCXX) 上的正则表达式将所有数字匹配到一个数组中
  • 为数组中的所有字符串编号的字符串 (0X -> X)
  • '.'连接所有数字 分隔符
  • 最后,它在字符串的开头添加一个“v”

我在重构中最挣扎的部分是在不使用任何 tmp 变量的情况下将数组编号 (3 2 1) 连接到连接 (3.2.1) 中。

代码 :

GOROCO=G03R02C01
version=v$(tmp=( $(grep -Eo '[[:digit:]]+' <<< $GOROCO | bc) ); echo "${tmp[@]}" | sed 's/ /./g')
Run Code Online (Sandbox Code Playgroud)

过程 :

G03R02C01
03 02 01
3 2 1
3.2.1
v3.2.1
Run Code Online (Sandbox Code Playgroud)

regex bash shell refactoring sed

1
推荐指数
1
解决办法
50
查看次数

标签 统计

bash ×1

refactoring ×1

regex ×1

sed ×1

shell ×1