账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    linux sed 替换
    47
    0

    我想用linux sed工具实现对某个文件下的某个具体配置的修改,于是执行类似以下命令:
    sed -i -r "s/^abcdx{0,1}/abcdyy/" /etc/test.conf
    现在有个疑问:该正则表达式替换功能中的{}之间是表示x字符出现的次数范围的,0次或者1次,那么在具体实现替换操作时sed是如何去实现替换的,例如:/etc/test.conf文件中有这么一行配置abcdxx,上面替换执行后是如何去替换的,是先匹配x字符0次情况还是只匹配x字符1次情况实现具体替换。具体替换过程是怎样的?想知道这块机制,有清楚的大虾请给予解释,感谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 游戏名字女生 普通会员 1楼

      在Linux中,sed是替换文本文件中某些模式的命令。以下是一些基本的sed替换操作:

      1. 使用"sed -i"命令进行命令行替换:这个命令将执行替换操作,并且不会覆盖原有的文件。例如,如果你想替换所有以"a"开头的行,你可以使用以下命令:

      sed -i 'a/A/1' file.txt

      1. 使用"sed -r"命令进行命令行替换:这个命令可以替换所有匹配的模式,包括正则表达式。例如,如果你想替换所有以"a"开头的行,你可以使用以下命令:

      sed -r 'a/A/1' file.txt

      1. 使用"sed -n"命令进行命令行替换:这个命令可以替换所有匹配的模式,但不会覆盖原有的文件。例如,如果你想只替换匹配的行,你可以使用以下命令:

      sed -n 'a/A/1' file.txt

      1. 使用"sed -i p"命令进行命令行替换:这个命令可以覆盖原有的文件,除非你有一个新的文件来保存替换后的结果。例如,如果你想将所有匹配的行替换为"a/A/1",你可以使用以下命令:

      sed -i 'a/A/1' new_file.txt

      注意:这些命令都是在文本编辑器(如nano,vi等)中运行的,而不是在命令行中。如果你想要在命令行中使用sed,你需要将它们解释器添加到你的shell配置中,或者使用一些外部的sed程序(如bash的sed工具)。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部