echo "TestT100String" | sed 's/[^0-9]*\([0-9]\+\).*/\1/'
echo "TestT100String" | grep -o '[0-9]\+'
Die Methode, mit der Sie die Ergebnisse in ein Array einfügen, hängt etwas davon ab, wie die tatsächlichen Daten abgerufen werden. Ihre Frage enthält nicht genügend Informationen, um Sie gut führen zu können. Hier ist jedoch eine Methode:
index=0
while read -r line
do
array[index++]=$(echo "$line" | grep -o '[0-9]\+')
done < filename
Hier ist ein anderer Weg:
array=($(grep -o '[0-9]\+' filename))
Sie könnten dies rein in der Bash mit der doppelten eckigen Klammer [[ ]]
tun Testoperator, der Ergebnisse in einem Array namens BASH_REMATCH
speichert :
[[ "TestT100String" =~ ([0-9]+) ]] && echo "${BASH_REMATCH[1]}"