用 grep/sed 替换许多任意降价链接
Replace many arbitrary markdown links with grep/sed
我有一大套 markdown 文件需要检查并替换许多 links。每个需要替换的 link 前面都有相同的字符串,例如 Foo bar
,然后是习惯性的降价 link 语法:[arbitrary name](address)
。例如,
Foo bar [arbitrary link text](http://arbitrary.address.com)
我需要在 "Foo bar " 之后找到每个降价 link 并将括号中的地址更改为不同的 link,比如 foo.bar.com
。问题是每个 link 都是不同的,并且必须保留任意 link 文本,所以我不能只是 grep 一个字符串并替换它。如何使用 grep 识别具有匹配模式的文件并使用 sed 替换 links?
您可以使用 find
命令。
find . -type f -exec sed -ri 's/\b(Foo bar +\[[^\]]*\]\()[^()]*\)/foo.bar.com)/g' {} \;
我有一大套 markdown 文件需要检查并替换许多 links。每个需要替换的 link 前面都有相同的字符串,例如 Foo bar
,然后是习惯性的降价 link 语法:[arbitrary name](address)
。例如,
Foo bar [arbitrary link text](http://arbitrary.address.com)
我需要在 "Foo bar " 之后找到每个降价 link 并将括号中的地址更改为不同的 link,比如 foo.bar.com
。问题是每个 link 都是不同的,并且必须保留任意 link 文本,所以我不能只是 grep 一个字符串并替换它。如何使用 grep 识别具有匹配模式的文件并使用 sed 替换 links?
您可以使用 find
命令。
find . -type f -exec sed -ri 's/\b(Foo bar +\[[^\]]*\]\()[^()]*\)/foo.bar.com)/g' {} \;