sed 用下划线替换破折号,直到到达字符

标签 sed

这是一个示例文本

enable-threads       = yes
enable-shared        = yes
enable-parser        = yes
DAL-II-VERSION     = 7.1.0
DAL-II-MAJOR       = -L -f -g
DAL-II-MINOR         = 1

我想将每一行中的所有破折号 (-) 替换为下划线,直到达到 = 符号为止。

有什么想法吗?

最佳答案

做类似事情的最简单方法是使用 look-ahead assertion . sed 不支持它们,但 perl 支持:

perl -pe 's/-(?=.*=)/_/g'

关于sed 用下划线替换破折号,直到到达字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451651/

相关文章:

c - 在 Makefile 依赖项中强制执行命令

sed - 在sed中获取过滤部分的第一个字母

replace - sed 在上一行的字符串匹配后替换第一次出现的字符串

linux - 如何删除特定模式后的行并提取某些内容

regex - sed 替换引号

linux - 删除文件中一行的开头

sed - 从最后一行删除逗号

shell - 删除 Unix 上的部分路径

sed - 传递给 sed 命令的 -n 参数有何意义?

bash - 您可以使用 sed 将日期转换为 yyyy/mm/dd 吗?