a.sh
#!/usr/bin/env bash
origin='car_user_ben_fm'
target=$([[ "$origin" =~ _([^_]*)$ ]] && echo ${BASH_REMATCH[1]})
echo "origin:$origin。截取最后一个_至结尾,中间的内容,为:$target。"
origin=scheduler_week4.sh
target=$([[ "$origin" =~ (.*).sh ]] && echo ${BASH_REMATCH[1]})
echo "origin:$origin。截取.sh之前的字符串 为:$target。"
执行
sh a.sh
结果
origin:car_user_ben_fm。截取最后一个_至结尾,中间的内容,为:fm。
origin:scheduler_week4.sh。截取.sh之前的字符串 为:scheduler_week4。