求助:shell如何将匹配的单词保存到某个变量中

如下形式的一系列符串“hvm_tc_gen(pdm_tc_gen,pdm_msscen)”,每个单词之间可能有空格,也可能没有如何用正则表达式将每个以"pdm_"开头的字... 如下形式的一系列符串“hvm_tc_gen(pdm_tc_gen,pdm_msscen)”,每个单词之间可能有空格,也可能没有
如何用正则表达式将每个以"pdm_"开头的字符串保存到某个变量里面

貌似实际中这样的需求很多,就是如何将符合匹配条件的单词放到某个变量或者队列里

贴吧里的高手些,求解答
展开
 我来答
langyxxl
2012-02-28 · TA获得超过104个赞
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:167万
展开全部
语法是这样的:
${varname#pattern} 删除变量开头匹配pattern的最短部分,并返回剩下部分
两个#删除匹配最长部分,并返回剩下部分

${varname%pattern}删除变量结尾开始匹配pattern的最短部分,并返回剩下部分
两个%删除匹配最长部分,并返回剩下部分

知道怎么用了吧,用循环判断还有没有剩余的单词没有提取出来就行了

参考资料: SHELL编程从入门到精通

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小米飞猫
2012-02-28 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
$echo "hvm_tc_gen(pdm_tc_gen,pdm_msscen)" | sed -n 's/^.*(\([a-z]*\).*$/\1_/p'
pdm_

$echo "hvm_tc_gen(pdm_tc_gen,pdm_msscen)" | awk -F"(" '{print $2}' | awk -F"_" '{printf "%s_\n",$1}'
pdm_

我好想理解错了,你是不是想这样?
$echo "hvm_tc_gen(pdm_tc_gen,pdm_msscen)" | sed -n 's/^.*(\(.*\),\(.*\))/\1\n\2/p'
pdm_tc_gen
pdm_msscen
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式