如何将grep正则表达式匹配的结果保存到变量?

时间:2016-01-19 20:03:59

标签: regex bash unix

我有一个变量:email="yask123@gmail.com"我希望将其用户名部分存储在另一个变量中。

我使用了以下grep命令:

$ $email | grep '.*@'

这给了我以下输出。

yask123@ gmail.com

我想将匹配的字符串保存在变量中。

我试过

res=`echo $email | grep '.*@'`

哪个不起作用。

2 个答案:

答案 0 :(得分:2)

试试这个:

$("ul li:nth-child(2) a, ul li:not(:nth-child(2))")

输出:

yask123

请参阅:3.5.3 Shell Parameter Expansion

答案 1 :(得分:0)

以防万一你想做一些比shell匹配更复杂的事情,这绝对有效地应用于你的例子:

res=$(echo $email | sed 's/\(.*\)@.*/\1/')