如何用Bash参数扩展提取指定字符串中的grabthistext?
Bash参数扩展提取目标文本方案
给定输入字符串INPUT_STRING="{/p1/p2=grabthistext}",要提取其中的grabthistext,可以通过以下几种纯Bash参数扩展的方法实现:
方法一:先截取等号后内容,再移除末尾的}
使用两次参数扩展组合:
INPUT_STRING="{/p1/p2=grabthistext}" echo "${${INPUT_STRING##*=}%}}"
${INPUT_STRING##*=}:从字符串开头匹配并删除到最后一个=的所有内容,得到grabthistext}${...%}}:从结果末尾匹配并删除单个},最终得到目标文本grabthistext
方法二:先移除首尾括号,再截取等号后内容
通过字符串切片先清理首尾的括号,再提取目标内容:
INPUT_STRING="{/p1/p2=grabthistext}" echo "${${INPUT_STRING:1:-1}##*=}"
${INPUT_STRING:1:-1}:对字符串进行切片,从索引1位置(跳过开头的{)截取到倒数第1个字符(跳过结尾的}),得到/p1/p2=grabthistext${...##*=}:删除从开头到最后一个=的所有内容,得到目标文本grabthistext
内容的提问来源于stack exchange,提问作者Asdfg
相关产品推荐
相关产品推荐

