我有一个问题。 我有VAR - 例如:
$ VAR ="&TEST12#34;
我想把它分成两部分。 但我不知道该怎么做。 我试过了:
SECOND_PART =" $ {VAR:-1}"
FIRST_PART =" $ {VAR%?}"
但此方法不包括多位数字(范围:1到99)。 在此先感谢您的帮助:)
答案 0 :(得分:3)
echo ${VAR//[^0-9]/} ${VAR//[0-9]/}
这使用模式替换。它还假设输入的形式是可靠的(例如,不是"this12andthat98"
)
答案 1 :(得分:1)
这是另一种方法:
echo ${VAR%%[0-9]*} ${VAR##*[!0-9]}
test 12
${VAR%%[0-9]*}
从后面删除最长的数字匹配。所以
test12
将成为test
。
${VAR##*[!0-9]}
从前面移除最长的比赛。所以test12
将成为12
。匹配状态匹配除数字之外的任何内容。