分割一个字符串变量,只使用一段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