echo "TestT100String" | sed 's/[^0-9]*\([0-9]\+\).*/\1/'
echo "TestT100String" | grep -o '[0-9]\+'
結果を配列に入れるために使用する方法は、実際のデータを取得する方法によって多少異なります。あなたの質問には、あなたをうまく導くことができる十分な情報がありません。ただし、ここに 1 つの方法があります:
index=0
while read -r line
do
array[index++]=$(echo "$line" | grep -o '[0-9]\+')
done < filename
別の方法は次のとおりです:
array=($(grep -o '[0-9]\+' filename))
二重角括弧 [[ ]]
を使用して、純粋に bash でこれを行うことができます 結果を BASH_REMATCH
という配列に格納するテスト演算子 :
[[ "TestT100String" =~ ([0-9]+) ]] && echo "${BASH_REMATCH[1]}"