我试图在 bash 脚本中提取文件扩展名之前的最后一个数字。所以格式会有所不同,但它会是数字和字母的某种组合,最后一个字符将始终是数字。我需要提取这些数字并将它们存储在一个变量中。
格式一般为:
sdflkej10_sdlkei450_sdlekr_1.txt
我只想将最后一位数字 1 存储到变量中。
我将使用它来遍历大量文件,最后一个数字将变为两位数和三位数。
所以对于这个文件:
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 中执行此操作的事实。任何帮助将不胜感激。