You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sed修改PostgreSQL的pg_hba.conf时跳过空格完成替换?

sed忽略空白匹配修改pg_hba.conf配置方案

你可以使用sed的正则空白匹配符实现忽略空格、制表符的匹配逻辑,不需要严格对齐原有配置的空格数量,同时还能保留原有行的缩进格式不被改动:

适用GNU sed(Linux发行版默认)

直接执行以下命令即可写入修改:

sed -i '/^local[[:space:]]\+all[[:space:]]\+all[[:space:]]\+peer[[:space:]]*$/s/peer[[:space:]]*$/trust/' pg_hba.conf

适用BSD sed(macOS默认)

macOS自带的sed需要给-i参数指定备份后缀,不需要备份可传入空字符串:

sed -i '' '/^local[[:space:]]\+all[[:space:]]\+all[[:space:]]\+peer[[:space:]]*$/s/peer[[:space:]]*$/trust/' pg_hba.conf

命令逻辑说明

  • 先通过地址匹配规则筛选出唯一的目标行:匹配以local开头,依次间隔任意数量空白字符后接两个all,末尾为peer(允许行尾带空白)的行,不会误匹配其他local开头的配置行
  • 筛选到目标行后仅将末尾的peer(含行尾空白)替换为trust,原有行的空格、制表符缩进完全保留
  • 建议修改前先去掉-i参数执行命令,打印输出确认替换结果符合预期后再添加-i参数写入文件

内容的提问来源于stack exchange,提问作者Furlings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:39:03