【发布时间】:2014-05-26 18:54:29
【问题描述】:
我有一个问题。 我有 VAR - 例如:
$VAR="test12"
我想把它分成两部分。 但我不知道该怎么做。 我试过了:
SECOND_PART="${VAR: -1}"
FIRST_PART="${VAR%?}"
但此方法不包括多位数字(范围:1 到 99)。 提前感谢您的帮助:)
【问题讨论】:
我有一个问题。 我有 VAR - 例如:
$VAR="test12"
我想把它分成两部分。 但我不知道该怎么做。 我试过了:
SECOND_PART="${VAR: -1}"
FIRST_PART="${VAR%?}"
但此方法不包括多位数字(范围:1 到 99)。 提前感谢您的帮助:)
【问题讨论】:
echo ${VAR//[^0-9]/} ${VAR//[0-9]/}
这使用模式替换。它还假设输入的形式是可靠的(例如不是"this12andthat98")
【讨论】:
这是另一种方法:
echo ${VAR%%[0-9]*} ${VAR##*[!0-9]}
test 12
${VAR%%[0-9]*}
从后面删除最长的数字匹配。所以
test12 将变为 test。
${VAR##*[!0-9]}
从前面删除最长的匹配项。所以test12
将变为12。匹配状态为匹配除数字之外的任何内容。
【讨论】: