考虑我们有文字:
<li><a href="link">text1</a>
获取“链接”的最快方式是什么(在text1之前的网址)。
考虑到同样的情况,如何在链接后找到文本,例如: 提供“链接”,期望得到text1
答案 0 :(得分:0)
获取链接
尝试grep
grep -Po '(?<=href=")[^"]*' file
用你的例子测试:
kent$ echo '<li><a href="link">text1</a>'|grep -Po '(?<=href=")[^"]*'
link
获取文字
假设您在变量l
中保存“link”:
grep -Po "(?<=href=\"$l\">)[^<]*"
会给你发短信
试试你的例子:
kent$ l=link
kent$ echo '<li><a href="link">text1</a>'|grep -Po "(?<=href=\"$l\">)[^<]*"
text1
答案 1 :(得分:0)
使用sed
:
要查找“链接”:
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
regexp:
要查找“链接”:
echo '<li><a href="link">text1</a>' | grep -oP '[^"]*(?=">text1)'
要查找'text1':
echo '<li><a href="link">text1</a>' | grep -oP '(?<="link">)[^<]*'