我有一个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] 删除。
我来说两句