sed コマンドを使用したデータの解析

sed コマンドを使用したデータの解析

私の結果は次のとおりです。

   <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"

関連情報