1

考虑我们有文字:

<li><a href="link">text1</a>

获取“链接”(文本1之前的网址)的最快方法是什么。

考虑到相同的情况,如何在链接之后找到文本,fe 提供“链接”,期望得到 text1

4

2 回答 2

0

获取链接

试试 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
于 2013-02-10T13:05:40.413 回答
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/'

使用grepPerl正则表达式:

要查找“链接”:

echo '<li><a href="link">text1</a>' | grep -oP '[^"]*(?=">text1)'

要查找“text1”:

echo '<li><a href="link">text1</a>' | grep -oP '(?<="link">)[^<]*'
于 2013-02-10T13:06:48.977 回答