从文件名中提取(变量)子字符串

时间:2016-11-18 17:50:05

标签: bash

我有大量文件名为

的文件

OUTPUT_11_0.175

我想提取这两个数字,我设法得到第二个数字:

for file in ./dir/*; do
phi=${file##*_}
echo "$phi"
done

在这种情况下获得另一个号码11,我试过

a=${file#*_}

但这会返回第一个下划线左侧的所有内容(该目录包含下划线) - 是否有某种方法可以说服bash转到两个下划线之间的“读取”并返回“11”?

1 个答案:

答案 0 :(得分:2)

$ IFS=_ read -a foo <<< "OUTPUT_11_0.175"
$ echo "${foo[0]}"
OUTPUT
$ echo "${foo[1]}"
11
$ echo "${foo[2]}"
0.175