ファイルの2つの文字列の間でURLを抽出します。

ファイルの2つの文字列の間でURLを抽出します。

各行には次のファイルがあります。

"372"^""^"2015-09-03 06:59:44.475"^"NEW"^"N/A"^""^0^"105592"^"https://example-url.com"^"example-domain < MEN'S ULTRA < UltraSeriesViewAll (18)"^"New"^"MERCHANT_PROVIDED"

ファイルからURLを抽出したいです。https://example-url.com

sedコマンドを使用してこれらの正規表現を試しました。sed -n '/"^"http/,/"^"/p'

しかし、これは私の問題を解決しませんでした。

ベストアンサー1

あなたはこれを使うことができます

sed -n 's!^.*\^"\(http[^^]*\)"^.*!\1!p'

RE初心者にとって潜在的な問題は、これが^指標であることです。行の始まり\^したがって、REの先頭に上向き矢印が必要な場合はエスケープする必要があります。

REパターンマッチングは次のように説明できます。

  • ^.*\^"- 行の先頭からパターン^"の残りの部分を満たす最後の上矢印二重引用符が表示されるまで一致します。
  • \(- 次に、交換可能な交換ブロックを起動します。\1
  • http[^^]*--httpできるだけ多くの文字を一致させなさい。^これ以上一致しないほど良いです。
  • \)--代替ブロックの終わり "^.*-- 二重引用符と上向き矢印を一致させ、"^できるだけマッチします (行末まで)。

完全一致は\1パターンブロックの先頭に置き換えられます。http

おすすめ記事