【发布时间】:2015-03-19 18:33:27
【问题描述】:
我想只返回 bash shell 中字符串变量的数字。例如,对于:
#!/bin/sh
file="./file_02.txt"
file_num_tag=?????????????????
echo $file_num_tag
...我想退货
>>> 02
我知道这非常琐碎,但我在四处寻找答案时感到困惑,我想知道最好的方法。
【问题讨论】:
我想只返回 bash shell 中字符串变量的数字。例如,对于:
#!/bin/sh
file="./file_02.txt"
file_num_tag=?????????????????
echo $file_num_tag
...我想退货
>>> 02
我知道这非常琐碎,但我在四处寻找答案时感到困惑,我想知道最好的方法。
【问题讨论】:
你可以使用这个 BASH 字符串替换:
file="./file_02.txt"
echo "${file//[^[:digit:]]}"
02
[^[:digit:]] 将匹配并删除字符串 file 中的所有非数字。
或者使用tr(如果不使用 BASH):
num=`echo "$file" | tr -cd '[[:digit:]]'`
【讨论】:
echo "${file}" | tr -cd '0-9'