web-dev-qa-db-ja.com

区切り文字「 "wikilink"」の前に任意のWordに.mdを追加する方法

この投稿をお読みいただきありがとうございます。

タイトルで述べたように、区切り文字「wikilink」の前のWordに.mdを追加しようとしています。問題は、ファイルに応じてWordが変更され、数百のファイルが存在することです。

例えば:

_On the (example-info "wikilink") and the
(second-example "wikilink") platforms.
_

になるはずです:

_On the (example-info.md "wikilink") and the
(second-example.md "wikilink") platforms.
_

ファイルによってWordが変わるので、以下のsedコマンドを試してみました。残念ながら、これはWordと.mdの間にスペースを残します

gsed -r 's/(^.*)"wikilink"/\1.md "wikilink"/g' filename

結果:

_On the (example-info .md "wikilink") and the
(second-example .md "wikilink") platforms.
_

これはsedで行う必要はありません。使用するのに最適なツールのように見えました。

ありがとうございました

3
Dan
_$ sed 's/(\([^ ]*\) "wikilink")/(\1.md "wikilink")/g' file
On the (example-info.md "wikilink") and the
(second-example.md "wikilink") platforms.
_

これは、開始括弧の直後からスペースまでの単語と一致し、その後に文字列_"wikilink")_が続きます。 Wordはキャプチャグループ(\(...\))にキャプチャされ、置換はWordの後に_.md_を挿入します。

5
Kusalananda