【问题标题】:Using sed with regex to match varying lines使用 sed 和正则表达式来匹配不同的行
【发布时间】:2019-03-10 05:55:39
【问题描述】:

我在使用 sed 匹配正则表达式模式时遇到了一些问题。示例如下:

spring-core-4.0.0 应该是 spring-core-4.1.0

spring-web-4.0.0 应该是 spring-web-4.1.0

我希望正则表达式匹配 spring 和版本号之间的任何字符。我不确定是否需要为 sed 执行其他操作来记住每行中的这些字符。

sed -E 's/spring-([a-z]+)-4.0.0/spring-([a-z]+)-4.1.0/' file.txt

当前输出将正则表达式模式放在输出中,而不是匹配它。感谢您的任何提示。

【问题讨论】:

  • sed 's/spring-\([a-z]\+\)-4\.0\.0/spring-\1-4.1.0/' file.txt ???
  • 这太完美了!谢谢。

标签: linux sed command


【解决方案1】:
$ sed 's/\(spring-[^-]*-\)4.0.0/\14.1.0/' file
spring-core-4.1.0
spring-web-4.1.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2018-12-30
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    相关资源
    最近更新 更多