gpt4 book ai didi

html - 使用 sed 从 html 中提取 pdf

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:25 25 4
gpt4 key购买 nike

我正在编写一个从 html 中提取 pdf 文件并下载的 bash 脚本。这是提取的代码行:

 curl -s https://info.uqam.ca/\~privat/INF1070/ |
sed 's/.*href="//' |
sed 's/".*//' |
sed '/^[^\.]/d' |
sed '/\.[^p][^d][^f]$/d' |
sed '/^$/d' |
sed '/\/$/d'

结果:

./07b-reseau.pdf
./07a-reseau.pdf
./06b-script.pdf
./06a-script.pdf
./05-processus.pdf
./04b-regex.pdf
./181-quiz1-g1-sujet.pdf
./03b-fichiers-solution.pdf
./04a-regex.pdf
./03d-fichiers.pdf
./03c-fichiers.pdf
./03b-fichiers.pdf
./03a-fichiers.pdf
./02-shell.pdf
./01-intro.pdf
./01-intro.pdf
./02-shell.pdf
./03a-fichiers.pdf
./03b-fichiers.pdf
./03b-fichiers-solution.pdf
./03c-fichiers.pdf
./03d-fichiers.pdf
./04a-regex.pdf
./04b-regex.pdf
./05-processus.pdf
./06a-script.pdf
./06b-script.pdf
./07a-reseau.pdf
./07b-reseau.pdf
./181-quiz1-g1-sujet.pdf

它工作正常,但我想知道是否有更好的方法(始终使用 sed) 来使用较少的 sed 命令来完成此操作。

谢谢。

最佳答案

您可以将您的原始问题翻译成类似于 How to output only captured groups with sed? 的内容.这个单行应该可以为您解决问题:

curl -s https://info.uqam.ca/\~privat/INF1070/ | sed -rn 's/.*href="(.*\.pdf)".*$/\1/p'

产生所需的输出。

-n 选项(不打印)和 p 标志(打印匹配的内容)的组合将仅打印基于替换发生的行在正则表达式 .*href="(.*\.pdf)".*$ 上。 href 属性(括号中的捕获组)的值被 \1 反向引用,因此整行都被它替换。

关于html - 使用 sed 从 html 中提取 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53752633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com