分割一个字符串变量,只使用一段bash
Split a string variable and use only a section bash
我有一个如下所示的变量。
1.1.0.1580308800316
有没有办法将 1.1.0 作为单独的变量,将 1580308800316 作为单独的变量?喜欢var1=1.1.0 and var2=1580308800316
我尝试了以下我能找到的代码行。
echo 1.1.0.1580308800316 | fold -w6
但是并没有给我带来想要的结果
``
尽管恕我直言,您可以从文本中创建 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)
标准是可能的 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
我有一个如下所示的变量。
1.1.0.1580308800316
有没有办法将 1.1.0 作为单独的变量,将 1580308800316 作为单独的变量?喜欢var1=1.1.0 and var2=1580308800316
我尝试了以下我能找到的代码行。
echo 1.1.0.1580308800316 | fold -w6
但是并没有给我带来想要的结果
``
尽管恕我直言,您可以从文本中创建 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)
标准是可能的 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