为以另一个模式开头的每一行替换一个模式
Posted
技术标签:
【中文标题】为以另一个模式开头的每一行替换一个模式【英文标题】: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 【参考方案1】:对于以 SEG+BB 开头的每一行,我必须用 CD 替换 AB
这段代码完成了工作:
sed '/^SEG+BB/ s/AB/CD/g '
'/^SEG+BB/ ' => 对于所有以“SEG+BB”开头的行,在括号内做代码
【讨论】:
以上是关于为以另一个模式开头的每一行替换一个模式的主要内容,如果未能解决你的问题,请参考以下文章