从bash shell中的字符串返回数字

时间:2015-03-19 18:33:27

标签: regex string bash

我想只返回bash shell中字符串变量的数字。例如,对于:

#!/bin/sh
file="./file_02.txt"
file_num_tag=?????????????????
echo $file_num_tag

...我想回来

>>> 02

我知道这是非常微不足道的,但是我在寻找答案时感到困惑,我想知道最好的方法。

1 个答案:

答案 0 :(得分:6)

您可以使用此BASH字符串替换:

file="./file_02.txt"
echo "${file//[^[:digit:]]}"
02

[^[:digit:]]将匹配并删除字符串file中的所有非数字。

或使用tr(如果不使用BASH):

num=`echo "$file" | tr -cd '[[:digit:]]'`