我有一个文本文件,其中包含一些HTML信息:
grep -oP "https:\/\/www.youtube.com\/watch\?v=([A-Za-z0-9-_]+)" list > links
我使用list
提取链接,以便Lab: K-means Clustering
Lab: Hierarchical Clustering
Interview with John Chambers
Interview with Bradley Efron
Interview with Jerome Friedman
Interviews with statistics graduate students
是html文件。从另一方面,我需要提取每个文件的名称,即我需要另一个这样的列表:
<a href="http://www-bcf.usc.edu/~gareth/ISL/">An Introduction to Statistical Learning with Applications in R</a>
问题是我有一些像a
这样的标签,因此我无法使用$1
标签的某些模式。所以我必须使用像模式分组这样的东西,我可以使用一些$2
作为第一个匹配模式,https:\/\/www.youtube.com\/watch\?v=([A-Za-z0-9-_]+)/[SOME INFORMATION ON URL HERE]/([A-Za-z0-9-_]+)
作为第二个模式,依此类推到show{reify{...}}
。 如何在终端(Bash)上执行此操作?
答案 0 :(得分:1)
您可以使用非贪婪的正则表达式,如下所示:
>([^<]+?)</a>
请参阅Demo
或者更确切地说,您可以使用look-around:
(?<=>)([^<]+?)(?=</a>)
结果:
Lab: K-means Clustering
Lab: Hierarchical Clustering
Interview with John Chambers
Interview with Bradley Efron
Interview with Jerome Friedman
Interviews with statistics graduate students
答案 1 :(得分:1)
您可以执行以下操作:
Books
id | publisher_id
-----------------
1 | 1
2 | 1
Publishers
id | name
----------
1 | publisher1
1 | publisher2
LEFT JOIN output
book_id | publisher_id | name
-----------------------
1 | 1 | publisher1
1 | 1 | publisher2
2 | 1 | publisher1
2 | 1 | publisher2
这将打印:
grep -oP "(?<=\">).*(?=</a)" your_file
由于没有简单的方法可以使用Lab: K-means Clustering
Lab: Hierarchical Clustering
Interview with John Chambers
Interview with Bradley Efron
Interview with Jerome Friedman
Interviews with statistics graduate students
仅打印捕获的组,因此我使用了前瞻和后瞻断言来确保只打印指定的部分。
答案 2 :(得分:1)
您可以使用\K
在您真正想要的内容之前删除所有匹配的内容
grep -oP "a href=\"[^>]+>\K[^<]+" file
Lab: K-means Clustering
Lab: Hierarchical Clustering
Interview with John Chambers
Interview with Bradley Efron
Interview with Jerome Friedman
Interviews with statistics graduate students
或假设">
没有出现在其他任何地方
grep -oP "\">\K[^<]+" file
答案 3 :(得分:1)
使用便携式awk解决方案:
awk -F '<a href[^>]*>|</a>' '{print $2}' file.html
Lab: K-means Clustering
Lab: Hierarchical Clustering
Interview with John Chambers
Interview with Bradley Efron
Interview with Jerome Friedman
Interviews with statistics graduate students