時間をかけてこの記事を読んでくれてありがとう。
タイトルで述べたように、「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
その単語の後に挿入されます。