Sed

SED - 將 URL 前綴添加到隨機 pdf 文件名

  • June 2, 2022

在上傳到網路之前,我有一個在本地預覽的 html 文件。其中有指向本地 pdf 文件的連結。要上傳,我必須在 pdf 的前面加上一個網址。

這是我的本地 html 文件的範例 -

<a href="randomFilename.pdf">Article HERE</a>

這就是我的網路版本需要修改的方式 -

<a href="https://www.site.com/folder1/folder2/randomFilename.pdf">Article HERE</a>

所以https://www.site.com/folder1/folder2/需要添加到完全隨機的 pdf 文件名中。我不知道 SED 是否可以做到這一點。我們可以搜尋“pdf”,但是如何向後添加這個前綴呢?我搜尋了 50 個 sed 命令頁面,但找不到執行此操作的線​​索。

最簡單的事情就是在擷取組中擷取文件名。設置-E標誌後,您可以為此使用普通括號。(或者您可以使用\(\)不使用-E標誌。)然後您可以\1在替換中引用它。

sed -E 's#<a href="([^"]*)\.pdf"#<a href="https://www.site.com/folder1/folder2/\1.pdf"#g' filename.html

這會查找以 開頭的模式,<a href="後跟除雙引號(擷取在擷取組中)之外的一系列任何內容,.pdf"然後將其替換為相同但https://www.site.com/folder1/folder2/在擷取組之前的模式。

我假設您總是使用雙引號來打開和關閉 URL,並且沒有任何 pdf 連結已經包含協議、域等。

引用自:https://unix.stackexchange.com/questions/704674