使用 wget 和 sed 从 html 标题中提取字符串

使用 wget 和 sed 从 html 标题中提取字符串

我有一个类似以下的 html 页面响应:

<html>
  <head>
   <title>ThisIsFile.zip - Company</title>
...

ThisIsFile.zip我尝试仅将名称输出到文件

wget --trust-server-names 'https://blablabla' | sed -E -i 's/<title>(.*) - Company<\/title>/\1/g' > /my/location.txt

但显示为空...我预计\1应该是ThisIsFile.zip

答案1

一些问题:

  1. -O /downloads/tmp/cd.txt将输出发送到文件,而不是标准输出。不-O带选项wget仍将下载一个或多个文件。使用-O -发送到标准输出。
  2. 您需要过滤掉其他行,因此grep '<title>'或类似的命令应该放在前面sed
  3. 前面的空格<title>将保留。调整sed或使用grep -o。解决方案很少。

wget --trust-server-names 'https://blablabla' -O - \
| grep -o '<title>.*</title>' \
| sed -E 's/<title>(.*) - Company<\/title>/\1/'

此外,您可能想要或不想要wget --quiet …

相关内容