假设我们有文本:
<li><a href="link">text1</a>获取“链接”(text1之前的url)的最快方法是什么?
考虑到同样的情况,如何能够找到链接后面的文本,f.e.提供“链接”,期望得到text1
发布于 2013-02-10 21:06:49
使用sed
要查找“link”:
echo '<li><a href="link">text1</a>' | sed 's/.*"\([^"]\+\)">text1.*/\1/'要查找“Text1”:
echo '<li><a href="link">text1</a>' | sed 's/.*"link">\([^<]\+\).*/\1/'使用grep和Perl正则表达式:
要查找“link”:
echo '<li><a href="link">text1</a>' | grep -oP '[^"]*(?=">text1)'要查找“Text1”:
echo '<li><a href="link">text1</a>' | grep -oP '(?<="link">)[^<]*'发布于 2013-02-10 21:05:40
获取链接
尝试使用grep
grep -Po '(?<=href=")[^"]*' file使用您的示例进行测试:
kent$ echo '<li><a href="link">text1</a>'|grep -Po '(?<=href=")[^"]*'
link获取文本
假设您将"link“保存在一个变量l中
grep -Po "(?<=href=\"$l\">)[^<]*" 将为您提供文本
试着用你的例子:
kent$ l=link
kent$ echo '<li><a href="link">text1</a>'|grep -Po "(?<=href=\"$l\">)[^<]*"
text1https://stackoverflow.com/questions/14797957
复制相似问题