Regex 如何将包含方括号内全名的mailto链接转换为不包含全名的mailto链接?

Regex 如何将包含方括号内全名的mailto链接转换为不包含全名的mailto链接?,regex,sed,Regex,Sed,我正在运行GNOME3,并试图在桌面文件中编写一个脚本,将mailto链接重定向到Yahoo!网络邮件 像这样的东西帮了我一点忙,但我仍然无法得到一个工作脚本 我的目标是将类似于“mailto:Dan Hoang”的东西变成“mailto:ntg255@gmail.com“并将其传递给顿悟 到目前为止的脚本: Exec=env qs='echo $1 | sed 's/mailto:/To=/' | sed -e 's/\(To==1&\).*\( *@=2&\)/\1\2/'

我正在运行GNOME3,并试图在桌面文件中编写一个脚本,将mailto链接重定向到Yahoo!网络邮件

像这样的东西帮了我一点忙,但我仍然无法得到一个工作脚本

我的目标是将类似于
“mailto:Dan Hoang”
的东西变成
“mailto:ntg255@gmail.com“
并将其传递给顿悟

到目前为止的脚本:

Exec=env qs='echo $1 | sed 's/mailto:/To=/' | sed -e 's/\(To==1&\).*\( *@=2&\)/\1\2/' | sed 's/\?subject=/\&Subject=/'' epiphany %U --new-tab http://compose.mail.yahoo.com/?$qs”
注: 该脚本适用于只有电子邮件地址而没有
sed-e's/\(To==1&\).\(*@=2&\)/\1\2/'
部分的mailto链接。这部分内容是我试图删除该名称。 同样,附在主显节上的%U没有任何作用;它只允许将其设置为默认应用程序。

这样做:

echo "mailto:Dan Hoang <ntg255@gmail.com>" | awk '/mailto:/{gsub(/[<>]/,"");$0="mailto:"$NF}1'
mailto:ntg255@gmail.com
echo“mailto:Dan Hoang”| awk'/mailto://{gsub(/[]/,”);$0=“mailto:$NF}1”
邮寄地址:ntg255@gmail.com
另一个解决方案:

echo "mailto:Dan Hoang <ntg255@gmail.com>" | awk -F"mailto" 'NF>1{split($2,a,"<|>");$0=FS a[2]}1'
mailtontg255@gmai
echo“mailto:Dan Hoang”|awk-F“mailto”'NF>1{split($2,a,”);$0=FS a[2]}1'
mailtontg255@gmai

l、 com

您不需要重复运行
sed
。只需给出多个
-e
选项,它就可以执行所有操作。在
sed
的参数周围使用的引号delmiter与在整个
qs=
参数周围使用的引号delmiter相同。那可能行不通。