我在目录及其子目录中有一些markdown文件(* .md)。我想删除所有链接标签,仅保留其锚文本。我不想删除图像标签。
所以我有类似
的文字a text containing [a link](https://example.com) and an image
![](image.jpg)
我想把它变成:
a text containing a link and an image
![](image.jpg)
我想尝试this method,但它会删除图像。
答案 0 :(得分:0)
使用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
,并且
这样可以防止正则表达式匹配以!
开头的子字符串。