我的输出是这样的:
<li><a href="/intl/id/download/">Bahasa Indonesia</a></li>
<li><a href="/intl/ms/download/">Bahasa Melayu</a></li>
<li><a href="/intl/da/download/">Dansk</a></li>
<li><a href="/intl/de/download/">Deutsch</a></li>
<li><a href="/intl/en/download/">English (US)</a></li>
<li><a href="/intl/es/download/">Español</a></li>
<li><a href="/intl/es-latam/download/">Español (América Latina)</a></li>
<li><a href="/intl/fr/download/">Français</a></li>
<li><a href="/intl/it/download/">Italiano</a></li>
<li><a href="/intl/nl/download/">Nederlands</a></li>
<li><a href="/intl/pl/download/">Polski</a></li>
<li><a href="/intl/pt-br/download/">Português (Brasil)</a></li>
<li><a href="/intl/pt/download/">Português (Portugal)</a></li>
<li><a href="/intl/fi/download/">Suomi</a></li>
<li><a href="/intl/sv/download/">Svenska</a></li>
<li><a href="/intl/vi/download/">Tiếng Việt</a></li>
<li><a href="/intl/tr/download/">Türkçe</a></li>
<li><a href="/intl/ru/download/">Русский</a></li>
<li><a href="/intl/ar/download/">العربية</a></li>
<li><a href="/intl/th/download/">ภาษาไทย</a></li>
<li><a href="/intl/ko/download/">한국어</a></li>
<li><a href="/intl/zh-cn/download/">中文(简体)</a></li>
<li><a href="/intl/zh-tw/download/">中文(繁體)</a></li>
<li><a href="/intl/jp/download/">日本語</a></li>
If your download didn’t start, <a href="https://cdn1.evernote.com/mac-smd/public/Evernote_RELEASE_7.1_456448.dmg">click here</a>.<br>
100 24789 100 24789 0 0 14560 0 0:00:01 0:00:01 --:--:-- 14564
<li><a href="/get-started">Getting started</a></li>
<li><a href="/basic">Basic</a></li>
<li><a href="/premium">Premium</a></li>
<li><a href="/business">Features</a></li>
<li><a href="/business/spaces">Spaces<span class="new">New!</span></a></li>
<li><a href="/business/use-cases">Use cases</a></li>
<li><a href="/business/customer-stories">Customer stories</a></li>
<li><a href="/business/contact">Contact sales</a></li>
<li><a href="http://blog.evernote.com/">Blog</a></li>
<li><a href="/community">Community</a></li>
我想只https://cdn1.evernote.com/mac-smd/public/Evernote_RELEASE_7.1_456448.dmg
用sed
命令提取
答案1
sed
等等都不是处理 XML/HTML 数据的正确工具。
使用适当的 XML/HTML 解析器,例如xmllint
或者xmlstarlet
。
和xmllint
你会这样做:
xmllint --html --xpath 'string(//a[text()="click here"]/@href)' input.html
输出:
https://cdn1.evernote.com/mac-smd/public/Evernote_RELEASE_7.1_456448.dmg
string(//a[text()="click here"]/@href)
- 关键的路径用于选择a
文本值的标签click here
并获取其href
属性的字符串表示形式的表达式
答案2
仅sed
如您所愿:
sed -n '/cdn1/p' "$YOUR_FILE"| sed 's/^.*\(https.*dmg\).*/\1/g'
或者更短:
sed -n 's/^.*\(https.*dmg\).*/\1/p' "$YOUR_FILE"
sed -n 's/^.*\(https.*\.[a-z]\{2,3\}\).*/\1/p' "$YOUR_FILE"
sed -n 's/^.*\(https\?.*cdn1.*\.[a-z]\{2,3\}\).*/\1/p' "$YOUR_FILE"