我有一个类似以下的 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
一些问题:
-O /downloads/tmp/cd.txt
将输出发送到文件,而不是标准输出。不-O
带选项wget
仍将下载一个或多个文件。使用-O -
发送到标准输出。- 您需要过滤掉其他行,因此
grep '<title>'
或类似的命令应该放在前面sed
。 - 前面的空格
<title>
将保留。调整sed
或使用grep -o
。解决方案很少。
wget --trust-server-names 'https://blablabla' -O - \
| grep -o '<title>.*</title>' \
| sed -E 's/<title>(.*) - Company<\/title>/\1/'
此外,您可能想要或不想要wget --quiet …
。