从已经下载的index.html中提取pdf文件以获取它们,即使使用grep的pdf倍数也是如此

youpilat13

我有一个index.html包含href链接到PDF文件的文件。

当我做:时grep -i 'href=' index.html,我得到例如:

<p>Télécharger : <a href="https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2019_Henrot-Versillé-C1_L1.pdf"><span style="color: #0000ff;">Cours n°1</span></a> (S. Henrot-Versillé), <span style="color: #0000ff;"><a href="https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2019_Henrot-Versillé_C1_L2.pdf">Cours n°2</a></span> (S. Henrot-Versillé), <a href="https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Henrot-Versillé_C3.pdf"><span style="color: #0000ff;">Cours n°3</span></a> (S. Henrot-Versillé)</p>
<p>Télécharger le cours sur <a href="https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Martinelli_C2_L1_Bayesian.pdf">la méthode bayésienne</a> (M. Martinelli) et <a href="https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Martinelli_C2_TD_Bayesian.pdf">son TD</a> (M. Martinelli).</p></div>
<p><a href="https://github.com/mhuertascompany/EDE19" title="GitHub Deep Learning 2019 EDE">https://github.com/mhuertascompany/EDE19</a></p>
<p><a href="https://colab.research.google.com/drive" title="TDs Deep Learning 2019">https://colab.research.google.com/drive</a></p></div>
        <a href="https://www.facebook.com/euclid.france" class="icon">
        <a href="https://twitter.com/Euclid_FR" class="icon">
        <a href="#" class="icon">
        <a href="https://ecole-euclid.cnrs.fr/feed/" class="icon">

现在,我想将grep的此输出与gsed(在MacOS Catalina上)进行管道传输,以提取PDF文件的所有完整href,即使同一行上有多个PDF链接也是如此。

我首先尝试:

grep -i 'href=' index.html | gsed 's/href="\(.*pdf\)"/\1/g'

但这是行不通的,正如您所看到的,我只会打印第一个PDF链接,而不是所有PDF链接(在同一链接上),因此,如何打印所有模式匹配?

目标是在此之后重新下载文件中存在的所有PDFindex.html文件

任何帮助将是巨大的。

埃德·莫顿

由于您具有GNU sed,因此可以安装GNU awk。使用用于多字符RS和RT的GNU awk:

$ awk -v RS='href="http[^"]+.pdf"' -F'"' 'RT{$0=RT; print $2}' file
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2019_Henrot-Versillé-C1_L1.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2019_Henrot-Versillé_C1_L2.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Henrot-Versillé_C3.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Martinelli_C2_L1_Bayesian.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Martinelli_C2_TD_Bayesian.pdf

否则,在每个UNIX框的任何外壳中使用任何awk:

$ awk '{
    while ( match($0,/href="http[^"]+.pdf"/) ) {
        split(substr($0,RSTART,RLENGTH),f,/"/)
        print f[2]
        $0 = substr($0,RSTART+RLENGTH)
    }
}' file
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2019_Henrot-Versillé-C1_L1.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2019_Henrot-Versillé_C1_L2.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Henrot-Versillé_C3.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Martinelli_C2_L1_Bayesian.pdf
https://ecole-euclid.cnrs.fr/wp-content/uploads/EDE2018_Martinelli_C2_TD_Bayesian.pdf

只需将输出通过管道传输到xargs -n 1 curl -O,以下载PDF(假设URL中没有空格)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用“ alamofire”跟踪已经下载的文件

来自分类Dev

我已经下载的qBittorrent种子文件

来自分类Dev

我已经下载的qBittorrent种子文件

来自分类Dev

AxWebBrowser:已经登录时下载文件

来自分类Dev

如何强制Chrome不要下载已经下载的文件?

来自分类Dev

使用glide库获取已经下载并缓存的图像

来自分类Dev

从已经下载的文件中安装UBUNTU 12.04(使用pendrive安装)

来自分类Dev

我已经下载了.sh文件-如何安装它?

来自分类Dev

如何跳过已经下载并删除的文件,然后继续种子?

来自分类Dev

使用BlockingQueue下载PDF文件

来自分类Dev

使用JavaScript下载PDF文件

来自分类Dev

Chef / Vagrant-如何将omnibus安装程序指向已经下载的文件?

来自分类Dev

如何在Chrome中安装已经下载的.crx文件扩展名?

来自分类Dev

如何在Chrome中安装已经下载的.crx文件扩展名?

来自分类Dev

Trigger.io-您已经购买了此文件,但尚未下载

来自分类Dev

为什么我必须下载.deb文件来更新一些已经安装的程序?

来自分类Dev

如何在已经开始的uTorrent下载中选择更多单个文件?

来自分类Dev

如何从已经通过ssh连接到的主机上下载文件

来自分类Dev

为什么rsync从本地已经存在的服务器重新下载未更改的文件?

来自分类Dev

为什么我必须下载.deb文件来更新一些已经安装的程序?

来自分类Dev

我已经从 Pubchem 下载了大型 gzipped xml 文件,但我的计算机说它们已损坏

来自分类Dev

HTML:如何使用链接下载pdf文件

来自分类Dev

如何使用pdfminer从存储在S3存储桶中的PDF文件中提取文本而无需在本地下载?

来自分类Dev

即使我使用Content-Disposition,PHP也会强制PDF文件下载:内联

来自分类Dev

将HTML表单下载为PDF文件

来自分类Dev

Phonegap下载pdf(文件)

来自分类Dev

无法下载PDF文件

来自分类Dev

下载pdf文件失败

来自分类Dev

从 API 下载 pdf 文件

Related 相关文章

  1. 1

    使用“ alamofire”跟踪已经下载的文件

  2. 2

    我已经下载的qBittorrent种子文件

  3. 3

    我已经下载的qBittorrent种子文件

  4. 4

    AxWebBrowser:已经登录时下载文件

  5. 5

    如何强制Chrome不要下载已经下载的文件?

  6. 6

    使用glide库获取已经下载并缓存的图像

  7. 7

    从已经下载的文件中安装UBUNTU 12.04(使用pendrive安装)

  8. 8

    我已经下载了.sh文件-如何安装它?

  9. 9

    如何跳过已经下载并删除的文件,然后继续种子?

  10. 10

    使用BlockingQueue下载PDF文件

  11. 11

    使用JavaScript下载PDF文件

  12. 12

    Chef / Vagrant-如何将omnibus安装程序指向已经下载的文件?

  13. 13

    如何在Chrome中安装已经下载的.crx文件扩展名?

  14. 14

    如何在Chrome中安装已经下载的.crx文件扩展名?

  15. 15

    Trigger.io-您已经购买了此文件,但尚未下载

  16. 16

    为什么我必须下载.deb文件来更新一些已经安装的程序?

  17. 17

    如何在已经开始的uTorrent下载中选择更多单个文件?

  18. 18

    如何从已经通过ssh连接到的主机上下载文件

  19. 19

    为什么rsync从本地已经存在的服务器重新下载未更改的文件?

  20. 20

    为什么我必须下载.deb文件来更新一些已经安装的程序?

  21. 21

    我已经从 Pubchem 下载了大型 gzipped xml 文件,但我的计算机说它们已损坏

  22. 22

    HTML:如何使用链接下载pdf文件

  23. 23

    如何使用pdfminer从存储在S3存储桶中的PDF文件中提取文本而无需在本地下载?

  24. 24

    即使我使用Content-Disposition,PHP也会强制PDF文件下载:内联

  25. 25

    将HTML表单下载为PDF文件

  26. 26

    Phonegap下载pdf(文件)

  27. 27

    无法下载PDF文件

  28. 28

    下载pdf文件失败

  29. 29

    从 API 下载 pdf 文件

热门标签

归档