bash スクリプトでファイル拡張子の前の最後の番号を抽出しようとしています。そのため、形式はさまざまですが、数字と文字の組み合わせになり、最後の文字は常に数字になります。これらの数字を取り出して変数に格納する必要があります。
形式は一般的に次のとおりです。
sdflkej10_sdlkei450_sdlekr_1.txt
最後の桁の 1 だけを変数に格納したい。
これを使用して多数のファイルをループすると、最後の数字が 2 桁または 3 桁になります。
したがって、このファイルの場合:
kej10_sdlkei450_sdlekr_310.txt
310を返す必要があります。
英数字とアンダースコアの数はファイルごとに異なりますが、私が常に欲しい数は.txt拡張子の直前とアンダースコアの直後です。
私は試した:
bname=${f%%.*}
number=$(echo $bname | tr -cd '[[:digit:]]')
しかし、これはすべての数字を返します。
私が試したら
number = $(echo $(bname -2) it changes the number it returns.
私が抱えている問題は、主に可変性に関連しており、bash でそれを行うように求められているという事実です。どんな助けでも本当に感謝します。