Массовое удаление тегов ссылок в файлах markdown (md) рекурсивно с использованием bash - PullRequest
0 голосов
/ 18 января 2019

У меня есть несколько файлов разметки (* .md) в каталоге и его подкаталогах. Я хочу удалить все теги ссылок и сохранить только их якорные тексты. Я не хочу удалять теги изображений.

Итак, у меня есть текст вроде

a text containing [a link](https://example.com) and an image
![](image.jpg) 

Я хочу включить:

a text containing a link and an image
![](image.jpg) 

Я хотел попробовать этот метод , но он удаляет изображения.

1 Ответ

0 голосов
/ 18 января 2019

С sed будет работать следующее:

find . -type f -name '*.md' -print0 | xargs -0 sed -i -E 's/(^|[^!])\[(.*?)\]\(.*?\)/\1\2/g'

Если доступно Perl, попробуйте что-то вроде:

find . -type f -name '*.md' -print0 | xargs -0 perl -pe 's/(?<!!)\[(.*?)\]\(.*?\)/$1/g' -i

Фрагмент (?<!!) в регулярном выражении представляет собой negative lookbehind и он запрещает регулярному выражению сопоставлять подстроку, которой предшествует !.

...