Regex 在bash脚本中拆分字符串
可能重复:Regex 在bash脚本中拆分字符串,regex,bash,Regex,Bash,可能重复: 我有一堆名为test..out的文件,类似于test1.1024.out或test2.2.out。是否有某种方法可以使用正则表达式,如^test....(.*).out$解析出每个文件上的中间数字,然后才能访问组 for f in test*.out; do number=${f#test*.} number=${number%.*} echo $f has middle number $number done 或者(BASH for循环的较短版本): 或者(BASH
我有一堆名为
test..out
的文件,类似于test1.1024.out
或test2.2.out
。是否有某种方法可以使用正则表达式,如^test....(.*).out$
解析出每个文件上的中间数字,然后才能访问组
for f in test*.out; do
number=${f#test*.}
number=${number%.*}
echo $f has middle number $number
done
或者(BASH for循环的较短版本):
或者(BASH for循环的较短版本):
根据Bash的版本,这也可以工作:
test=test1.1024.out
if [[ $test =~ ^test[A-Za-z0-9]+\.([0-9]+)\.out$ ]]; then
echo ${BASH_REMATCH[1]}
fi
根据Bash的版本,这也可以工作:
test=test1.1024.out
if [[ $test =~ ^test[A-Za-z0-9]+\.([0-9]+)\.out$ ]]; then
echo ${BASH_REMATCH[1]}
fi
test=test1.1024.out
if [[ $test =~ ^test[A-Za-z0-9]+\.([0-9]+)\.out$ ]]; then
echo ${BASH_REMATCH[1]}
fi