shell脚本匹配并显示或者打印
2个回答
展开全部
#cat test |grep "\([\S]*\)"
用"\([\S]*\)"来匹配括号里的任意非空白字符
用"\([\S]*\)"来匹配括号里的任意非空白字符
追问
我的a 是一个变量 ,直接输入:a=" Queue(a.b.c) Type(n)"
然后怎么让它显示出:a.b.c 和n 呢?
追答
是要同时显示a.b.c和n吗?
#a=" Queue(a.b.c) Type(n)"
#echo $a | sed 's/[^(]*(\([^)]*\)).*(\(.*\)).*/\1 \2/'
显示结果:a.b.c n
其中\1匹配第一个()里的a.b.c,\2匹配第二个()里的n
如果只要显示其中一个,比如第二个
#echo $a | sed 's/[^(]*(\([^)]*\)).*(\(.*\)).*/\2/'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
显示 a.b.c
echo $a | sed 's/.*Queue(\([^)]*\)).*/\1/'
或:
echo $a | awk -F"[()]" '{print $2}'
显示n
echo $a | sed 's/.*Type(\(.*\)).*/\1/'
或:
echo $a | awk -F"[()]" '{print $4}'
sed中,
\( \) 用于标识一个组,后面在替换时用 \1 来引用
[^)] 表示任意一个不为)的字符。
echo $a | sed 's/.*Queue(\([^)]*\)).*/\1/'
或:
echo $a | awk -F"[()]" '{print $2}'
显示n
echo $a | sed 's/.*Type(\(.*\)).*/\1/'
或:
echo $a | awk -F"[()]" '{print $4}'
sed中,
\( \) 用于标识一个组,后面在替换时用 \1 来引用
[^)] 表示任意一个不为)的字符。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询