-1

I am looking for small help on search and replace a string in a file.

my file content

hostssl  all       all  192.168.10.1/16                    pam pamservice=postgresql clientcert=    1
hostssl  all       all  192.168.10.2/16                    pam pamservice=postgresql clientcert=1
hostssl  all       all  192.168.10.3/16                    pam pamservice=postgresql clientcert=   1
hostssl  all       all  192.168.10.4/16                    pam pamservice=postgresql clientcert=  1
hostssl  all       all  192.168.20.1/16                    pam pamservice=postgresql clientcert=1
hostssl  all       all  192.168.20.2/16                    pam pamservice=postgresql clientcert=1
hostssl  all       all  192.168.20.3/16                    pam pamservice=postgresql clientcert=1
hostssl  all       all  192.168.10.5/16                    pam pamservice=postgresql clientcert=1
hostssl  all       all  192.168.10.6/16                     pam pamservice=postgresql clientcert=1
hostssl  all       all  192.168.10.7/16                    pam pamservice=postgresql clientcert=      1

I tried with below command

sed -i "s/clientcert=*1/clientcert=verify-full/g" pg_hba.conf

it is worked for not expected result

hostssl  all       all  192.168.10.1/16                    pam pamservice=postgresql **clientcert=    1**
hostssl  all       all  192.168.10.2/16                    pam pamservice=postgresql clientcert=verify-full
hostssl  all       all  192.168.10.3/16                    pam pamservice=postgresql **clientcert=   1**
hostssl  all       all  192.168.10.4/16                    pam pamservice=postgresql **clientcert=  1**
hostssl  all       all  192.168.20.1/16                    pam pamservice=postgresql clientcert=verify-full
hostssl  all       all  192.168.20.2/16                    pam pamservice=postgresql clientcert=verify-full
hostssl  all       all  192.168.20.3/16                    pam pamservice=postgresql clientcert=verify-full
hostssl  all       all  192.168.10.5/16                    pam pamservice=postgresql clientcert=verify-full
hostssl  all       all  192.168.10.6/16                     pam pamservice=postgresql clientcert=verify-full
hostssl  all       all  192.168.10.7/16                    pam pamservice=postgresql clientcert=      1

kindly let me know the best alternative way to replace "clientcert= 1" with "clientcert=verify-full" by ignoring space between "=" and 1"

Durga
  • 17

1 Answers1

0

I found the answer . below code worked for me

sed -i "s/clientcert=[[:space:]]*1/clientcert=verify-full/g" pg_hba.conf
Durga
  • 17