求助:shell如何将匹配的单词保存到某个变量中
如下形式的一系列符串“hvm_tc_gen(pdm_tc_gen,pdm_msscen)”,每个单词之间可能有空格,也可能没有如何用正则表达式将每个以"pdm_"开头的字...
如下形式的一系列符串“hvm_tc_gen(pdm_tc_gen,pdm_msscen)”,每个单词之间可能有空格,也可能没有
如何用正则表达式将每个以"pdm_"开头的字符串保存到某个变量里面
貌似实际中这样的需求很多,就是如何将符合匹配条件的单词放到某个变量或者队列里
贴吧里的高手些,求解答 展开
如何用正则表达式将每个以"pdm_"开头的字符串保存到某个变量里面
貌似实际中这样的需求很多,就是如何将符合匹配条件的单词放到某个变量或者队列里
贴吧里的高手些,求解答 展开
展开全部
语法是这样的:
${varname#pattern} 删除变量开头匹配pattern的最短部分,并返回剩下部分
两个#删除匹配最长部分,并返回剩下部分
${varname%pattern}删除变量结尾开始匹配pattern的最短部分,并返回剩下部分
两个%删除匹配最长部分,并返回剩下部分
知道怎么用了吧,用循环判断还有没有剩余的单词没有提取出来就行了
${varname#pattern} 删除变量开头匹配pattern的最短部分,并返回剩下部分
两个#删除匹配最长部分,并返回剩下部分
${varname%pattern}删除变量结尾开始匹配pattern的最短部分,并返回剩下部分
两个%删除匹配最长部分,并返回剩下部分
知道怎么用了吧,用循环判断还有没有剩余的单词没有提取出来就行了
参考资料: SHELL编程从入门到精通
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$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
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询