Bash字符串操作,提取/删除部分

Bash字符串操作,提取/删除部分,bash,Bash,我正在修改一个旧的bash文件,在处理字符串时遇到了一些问题。问题是字符串可以是.左侧的任意随机字符串。例如,从这个isastring-Sub\u标记中\u 150827.1,我需要提取\u 150827.1。在bash中,这似乎很难做到。在任何其他语言中,我都会在\uuu上拆分,然后只获取列表的最后一个元素。在bash中如何执行此操作?我尝试了几种不同的方法(包括awk),但似乎都做不好 使用bash的参数展开: a="ThisIsAString-Sub_tag_150827.1" echo

我正在修改一个旧的bash文件,在处理字符串时遇到了一些问题。问题是字符串可以是
.
左侧的任意随机字符串。例如,从
这个isastring-Sub\u标记中\u 150827.1
,我需要提取
\u 150827.1
。在bash中,这似乎很难做到。在任何其他语言中,我都会在
\uuu
上拆分,然后只获取列表的最后一个元素。在bash中如何执行此操作?我尝试了几种不同的方法(包括awk),但似乎都做不好

使用bash的参数展开:

a="ThisIsAString-Sub_tag_150827.1"
echo "${a##*_}"
输出:

150827.1 150827.1
使用bash的参数展开:

a="ThisIsAString-Sub_tag_150827.1"
echo "${a##*_}"
输出:

150827.1 150827.1
隐马尔可夫模型。。。我真的试过类似的东西${string#*}@user797963 with
##
而不是
#
,Bash将删除最长的匹配字符串,而不是最短的;使用
#
会给您留下“tag#”前缀。看。
\uu
*
的顺序很重要。谢谢大家,这非常有帮助。嗯。。。我真的试过类似的东西${string#*}@user797963 with
##
而不是
#
,Bash将删除最长的匹配字符串,而不是最短的;使用
#
会给您留下“tag#”前缀。请参阅。
\uu
*
的顺序很重要。谢谢大家,这非常有帮助。