【问题标题】:using sed command subtitution使用 sed 命令替换
【发布时间】:2022-01-10 10:17:58
【问题描述】:

如何在 sed 命令中只替换特定值

例如,

Linux system
Windows syste
Mac    syste

我试过这个命令

sed 's/syste/system/g' 文件.txt

safwanpaloli@hello:~/linx$ sed 's/syste/system/g' new.txt 
Linux systemm
Windows system
Mac   system

我预期的结果

Linux system
Windows system
Mac   system

【问题讨论】:

    标签: linux sed


    【解决方案1】:

    试试sed 's/system/syste/g;s/syste/system/g' new.txt

    【讨论】:

    • 好的,这是迄今为止最疯狂的解决方案。
    • 嗯,这绝对是 POSIX 兼容的,我不需要考虑非 GNU sed 是否支持 \b\?
    • 最简单的解决方案可能是:sed -e 's/syste$/system/' file
    • 我同意,对于 OP 的输入,syste 总是出现在行尾。
    【解决方案2】:

    你可以试试这个sed,它将匹配最后一个单词并替换为system

    $ sed 's/[a-zA-Z]*$/system/g' input_file
    Linux system
    Windows system
    Mac   system
    

    【讨论】:

      【解决方案3】:

      也替换 m,但前提是它存在。

      sed 's/system\?/system/g'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-16
        • 2013-10-11
        • 1970-01-01
        • 2020-09-22
        • 1970-01-01
        • 2018-10-01
        • 2015-10-07
        • 1970-01-01
        相关资源
        最近更新 更多