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