如何使用 awk 从 HTML 文件中提取 URL?

Ron*_*nto 8 awk html

我在源中有一个带有 javascript 和 CSS 的 HTML 文件。JS 中列出了一系列嵌入其他元数据的 URL。我想使用 awk 提取 URL(全部用双引号括起来,并带有 http:// 前缀)并将 URL 转储到标准输出。不过我不知道awk怎么用,不过好像是工具好用。

{
title: "Dsssat",
artist: "cxpl djij awsoj e",
mp3: "http://somesite.com/seal/dsssat.mp3",
},
Run Code Online (Sandbox Code Playgroud)

Den*_*ker 9

为什么要使用awk?sed更擅长于此:

sed -ne 's/.*\(http[^"]*\).*/\1/p' < foo.js
Run Code Online (Sandbox Code Playgroud)

  • @RonaldoNascimento 请注意,这仅提取每行的最后一个 URL。这可能会或可能无关紧要,具体取决于您的文件格式。 (2认同)

Tac*_*tex 8

您可以使用grep. 要包括双引号:

grep -o '"http://[^"]*"' myfile.html
Run Code Online (Sandbox Code Playgroud)

要排除双引号:

grep -o 'http://[^"]*' myfile.html
Run Code Online (Sandbox Code Playgroud)

编辑

您可能需要做一些进一步的过滤以确保您只匹配 JavaScript 对象中的 URL:

grep -o 'mp3: "http://[^"]*"' myfile.html | grep -o '"http://[^"]*"'

grep -o 'mp3: "http://[^"]*"' myfile.html | grep -o 'http://[^"]*'
Run Code Online (Sandbox Code Playgroud)