SED - 任意のPDFファイル名にURLプレフィックスを追加する

SED - 任意のPDFファイル名にURLプレフィックスを追加する

Webにアップロードする前にローカルにプレビューできるhtmlファイルがあります。ローカルPDFファイルへのリンクがあります。アップロードするには、PDFの前にURLを追加する必要があります。

以下は私のローカルHTMLファイルの例です。

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

私のWebバージョンを変更する方法は次のとおりです。

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

したがって、https://www.site.com/folder1/folder2/完全に任意のPDFファイル名に追加する必要があります。 SEDがこれを行うことができるかどうかわかりません。 「pdf」を検索できますが、このプレフィックスを逆に追加するにはどうすればよいですか? 50個のsedコマンドページを検索しましたが、その手がかりが見つかりませんでした。

ベストアンサー1

最も簡単な方法は、キャプチャグループからファイル名をキャプチャすることです。-Eフラグを設定したら、通常の角かっこを使用できます。 (またはフラグなしで\(andを使用することもできます。)その後、交換\)-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リンクがないとします。

おすすめ記事