首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cygwin/unix查找跟在某个模式之后/之前的文本

cygwin/unix查找跟在某个模式之后/之前的文本
EN

Stack Overflow用户
提问于 2013-02-10 20:56:52
回答 2查看 156关注 0票数 1

假设我们有文本:

代码语言:javascript
运行
复制
<li><a href="link">text1</a>

获取“链接”(text1之前的url)的最快方法是什么?

考虑到同样的情况,如何能够找到链接后面的文本,f.e.提供“链接”,期望得到text1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-10 21:06:49

使用sed

要查找“link”:

代码语言:javascript
运行
复制
echo '<li><a href="link">text1</a>' | sed 's/.*"\([^"]\+\)">text1.*/\1/'

要查找“Text1”:

代码语言:javascript
运行
复制
echo '<li><a href="link">text1</a>' | sed 's/.*"link">\([^<]\+\).*/\1/'

使用grepPerl正则表达式:

要查找“link”:

代码语言:javascript
运行
复制
echo '<li><a href="link">text1</a>' | grep -oP '[^"]*(?=">text1)'

要查找“Text1”:

代码语言:javascript
运行
复制
echo '<li><a href="link">text1</a>' | grep -oP '(?<="link">)[^<]*'
票数 0
EN

Stack Overflow用户

发布于 2013-02-10 21:05:40

获取链接

尝试使用grep

代码语言:javascript
运行
复制
grep -Po '(?<=href=")[^"]*' file

使用您的示例进行测试:

代码语言:javascript
运行
复制
kent$  echo '<li><a href="link">text1</a>'|grep -Po '(?<=href=")[^"]*'
link

获取文本

假设您将"link“保存在一个变量l

代码语言:javascript
运行
复制
grep -Po "(?<=href=\"$l\">)[^<]*" 

将为您提供文本

试着用你的例子:

代码语言:javascript
运行
复制
kent$  l=link                                                               

kent$  echo '<li><a href="link">text1</a>'|grep -Po "(?<=href=\"$l\">)[^<]*"
text1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14797957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档