【发布时间】:2020-08-12 16:41:09
【问题描述】:
我有一个像下面这样的变量。
1.1.0.1580308800316
有没有办法将 1.1.0 作为单独的变量,将 1580308800316 作为单独的变量?赞var1=1.1.0 and var2=1580308800316
我尝试了以下可以找到的代码行。
echo 1.1.0.1580308800316 | fold -w6
但它并没有给我带来我想要的结果。
``
【问题讨论】:
我有一个像下面这样的变量。
1.1.0.1580308800316
有没有办法将 1.1.0 作为单独的变量,将 1580308800316 作为单独的变量?赞var1=1.1.0 and var2=1580308800316
我尝试了以下可以找到的代码行。
echo 1.1.0.1580308800316 | fold -w6
但它并没有给我带来我想要的结果。
``
【问题讨论】:
使用标准 POSIX shell 是可能的:
#!/usr/bin/env sh
version='1.1.0.1580308800316'
var1="${version%.*}"
var2="${version##*.}"
printf 'Version: %s\n' "$version"
printf 'Var1: %s\n' "$var1"
printf 'Var2: %s\n' "$var2"
输出:
Version: 1.1.0.1580308800316
Var1: 1.1.0
Var2: 1580308800316
【讨论】:
尽管恕我直言,您可以从文本中创建 2 个元素,并可以保存在数组的 2 个元素中,然后一个接一个地使用该数组项,因为 OP 坚持只有变量,所以您可以使用 cut这个命令。
first_var=$(echo "1.1.0.1580308800316" | cut -d'.' -f1-3)
second_var=$(echo "1.1.0.1580308800316" | cut -d'.' -f4)
【讨论】: