Bash -拆分文本和数字/数字从一个变量



我有一个问题。我有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

最新更新