我只想匹配 Bash 脚本中的一些文本。我尝试过使用 sed 但我似乎无法让它只输出匹配项而不是用某些东西替换它。
echo -E "TestT100String" | sed 's/[0-9]+/dontReplace/g'
哪个会输出TestTdontReplaceString
.
这不是我想要的,我想要它输出100
.
理想情况下,它将所有匹配项放入一个数组中。
edit:
文本输入以字符串形式输入:
newName()
{
#Get input from function
newNameTXT="$1"
if [[ $newNameTXT ]]; then
#Use code that im working on now, using the $newNameTXT string.
fi
}
您可以使用双方括号纯粹在 bash 中执行此操作[[ ]]
测试运算符,它将结果存储在名为的数组中BASH_REMATCH
:
[[ "TestT100String" =~ ([0-9]+) ]] && echo "${BASH_REMATCH[1]}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)