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"
sed -i 's/clientcert= *1/clientcert=verify-full/g' pg_hba.conf
– Gilles Quénot May 16 '23 at 20:14