用grep / sed替换许多任意降价链接

时间:2015-02-09 03:03:21

标签: regex bash sed grep markdown

我有一大堆markdown文件需要经过并替换许多链接。需要替换的每个链接前面都有相同的字符串,比如Foo bar,然后是惯用的降价链接语法:[arbitrary name](address)。例如,

Foo bar [arbitrary link text](http://arbitrary.address.com)

我需要在“Foo bar”之后找到每个降价链接,并将括号中的地址更改为其他链接,例如foo.bar.com。问题是每个链接都不同,并且必须保留任意链接文本,所以我不能只是grep一个字符串并替换它。如何使用grep识别具有匹配模式的文件并使用sed替换链接?

1 个答案:

答案 0 :(得分:2)

您可以使用find命令。

find . -type f -exec sed -ri 's/\b(Foo bar +\[[^\]]*\]\()[^()]*\)/\1foo.bar.com)/g' {} \;