区切り文字 ""wikilink"の前の単語に.mdを追加する方法

区切り文字

時間をかけてこの記事を読んでくれてありがとう。

タイトルで述べたように、「wikilink」区切り文字の前のすべての単語に.mdを追加しようとしています。問題は、ファイルによって単語が変わり、ファイルが数百個もあるという点だ。

たとえば、

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

次のようにする必要があります。

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

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

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

結果:

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

これは必ずしもsedを使用して行う必要はなく、使用するのに最適なツールのようです。

ありがとう

ベストアンサー1

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

これは、単に開かれている括弧の後の単語、その後の空白、そして文字列と一致します"wikilink")。その単語はキャプチャグループ(\(...\))にキャプチャされ、代替単語は.mdその単語の後に挿入されます。

おすすめ記事