如何在grep 3.1中匹配‘单词+空白字符+单词’模式?
解决grep 3.1中匹配"host+多空白+replication"的问题
你的问题出在[[:space:]]仅匹配单个空白字符,但目标行里host和replication之间是多个空白(空格/制表符),导致匹配失败。以下是几种可行方案:
方案1:基础正则匹配(grep默认模式)
grep 'host[[:space:]]\+replication' pg_hba.conf
[[:space:]]\+表示匹配一个或多个空白字符(兼容空格、制表符等所有空白类型)。
方案2:扩展正则匹配(更简洁)
启用扩展正则后,+可直接表示"一个或多个",无需转义:
grep -E 'host[[:space:]]+replication' pg_hba.conf
方案3:直接排除local行(更高效)
如果要只保留以host开头的行(自动排除local行),可以给正则加上行首锚定^:
grep -E '^host[[:space:]]+replication' pg_hba.conf
执行以上命令后,会输出你需要的结果:
host replication all 127.0.0.1/32 trust host replication all ::1/128 trust
内容的提问来源于stack exchange,提问作者RonJohn
相关产品推荐
相关产品推荐

