【问题标题】:Shell script to extract text between two strings and modify and replace it in the same file用于在两个字符串之间提取文本并在同一文件中修改和替换的 Shell 脚本
【发布时间】:2020-03-10 09:06:21
【问题描述】:

我有一个 markdown 文件,其中包含对应图像的 src。

例如:

![Login Screen](0005_eppm_login_page.png)

我想替换为:

![Login Screen](../src/0005_eppm_login_page.png)

【问题讨论】:

  • 你自己做了哪些努力?

标签: regex shell awk sed


【解决方案1】:

我猜你遇到了斜线的问题.. 这个单线可能会帮到你:

 sed '/\[Login Screen\]/{s#(#(../src/#}' 

在 sed 单行中,我们可以为 s(substitution) 选择除 / 之外的分隔符,特别是当文本/替换包含斜杠时。

【讨论】:

  • 我想替换所有以'('开头并以'.png)'结尾的png
  • 我有多个这样的实例 | 1 | ![](0036_eppmicon_endeavour.png)|奋进 | 2 | ![](0020_eppmicon_project.png)|项目 | 3 | ![](0019_eppmicon_program.png)|程序 | 4 | ![](0024_eppmicon_operation.png), |操作
  • 我的命令有什么作用?您可以将文件传递给 sed。根据需要扩展命令。
【解决方案2】:

使用以下内容:

sed -i 's,\(!\[[^][]*](\)\([^()]*\.png)\),\1../src/\2,g' file

它将用![...](../src/...\.png) 替换![...](...\.png) 模式。

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 2021-07-23
    相关资源
    最近更新 更多