【问题标题】:Replace many arbitrary markdown links with grep/sed用 grep/sed 替换许多任意的 markdown 链接
【发布时间】:2015-02-09 12:52:02
【问题描述】:

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

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

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

【问题讨论】:

  • 你已经尝试过哪些不能如你所愿?

标签: regex bash sed grep markdown


【解决方案1】:

您可以使用find 命令。

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

【讨论】:

  • 您的答案似乎没有将(地址)替换为 foo.bar.com,但它正确匹配了文件。
  • 你需要添加 -i 参数来保存所做的更改。现在试试我的更新,让我知道它是否有效..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
  • 1970-01-01
  • 2012-08-14
  • 2014-01-13
  • 2018-02-24
  • 1970-01-01
  • 2014-01-17
相关资源
最近更新 更多