我正在建立一个 GSA 关键字列表。我有一个关键字列表,以及它们应该链接到的 url。我需要为链接提供一个标题列表。我能想到的最好的地方是 HTML 中的标题标签。
给定一个格式如下的列表:
bash,PhraseMatch,http://stackoverflow.com/questions/tagged/bash,
html,PhraseMatch,http://stackoverflow.com/questions/tagged/html,
carreers,PhraseMatch,http://careers.stackoverflow.com/faq,
我想要一个这样的列表:
bash,PhraseMatch,http://stackoverflow.com/questions/tagged/bash,Newest 'bash' Questions
html,PhraseMatch,http://stackoverflow.com/questions/tagged/html,Newest 'html' Questions
carreers,PhraseMatch,http://careers.stackoverflow.com/faq,Stack Overflow Carreers 2.0
它所做的只是查找 URL,获取标题标签,并将其附加到行尾。这是我到目前为止所拥有的:
{
for line in $( cut -d ',' -f 3 input.csv );
{
wget --no-check-certificate --quiet -O - $line \
| paste -sd ' ' - \
| grep -o -e '<head[^>]*>.*</head>' \
| grep -o -e '<title>.*</title>' \
| cut -d '>' -f 2 \
| cut -d '<' -f 1 \
| cut -d '-' -f 1 \
| tr -d ' ' \
| sed 's| *\(.*\)|\1|g' \
| paste -s -d '\n' - \
;
}
} | paste -d ' ' input.csv - > output.csv
我遇到的问题是某些页面返回了各种错误。在那种情况下,我没有得到任何数据。这导致不生成任何行。当我进行粘贴以合并两个流时,它们的大小不同。
我正在寻找一种方法来检查空数据并返回一个空行。帮助?