【问题标题】:Replace a pattern for every line which starts with another pattern为以另一个模式开头的每一行替换一个模式
【发布时间】:2021-07-21 11:51:31
【问题描述】:

在下面的示例中,我必须将每行以 SEG+BB 开头的 AB 替换为 CD

赛格+AA+AB SEG+BB+6789+AB12345 赛格+BB+6789+AB12345 SEG+BB+6789+AB12345 赛格+BB+6789+AB12345 SEG+BB+6789+AB12345

【问题讨论】:

  • 欢迎来到 SO,您能否在您的问题中添加 3 个简单的内容。第 1- 清除输入示例,第 2- 清除输出示例和第 3- 您尝试过的命令/代码,谢谢。
  • @RavinderSingh13 我收到以下错误您的帖子似乎包含未正确格式化为代码的代码。请使用代码工具栏按钮或 CTRL+K 键盘快捷键将所有代码缩进 4 个空格。如需更多编辑帮助,请单击 [?] 工具栏图标。
  • @RavinderSingh13 在下面的示例中,对于以 SEG+BB INPUT SEG+AA+AB SEG+BB+6789+AB12345 SEG+BB+6789+AB12345 开头的每一行,我必须将 AB 替换为 CD SEG+BB+6789+AB12345 SEG+BB+6789+AB12345 SEG+BB+6789+AB12345 输出 SEG+AA+AB SEG+BB+6789+CD12345 SEG+BB+6789+CD12345 SEG+BB+6789+CD12345 SEG+ BB+6789+CD12345 SEG+BB+6789+CD12345 ` sed 's/^(SEG+BB;([^;]+;){5})AB;/\CD;/' ` I

标签: sed replace


【解决方案1】:

对于以 SEG+BB 开头的每一行,我必须用 CD 替换 AB

这段代码完成了工作:

sed '/^SEG+BB/ { s/AB/CD/g }'

'/^SEG+BB/ { }' => 对于所有以“SEG+BB”开头的行,在括号内做代码

【讨论】:

    猜你喜欢
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    相关资源
    最近更新 更多