알 수 없는 수의 공백이 있는 파일에서 검색 및 바꾸기 [중복]

알 수 없는 수의 공백이 있는 파일에서 검색 및 바꾸기 [중복]

파일에서 문자열을 검색하고 바꾸는 데 도움이 필요합니다.

내 파일 내용

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

다음 명령을 사용해 보았습니다.

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

그 효과는 예상한 결과가 아닙니다.

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

"="와 1" 사이의 공백을 무시하여 "clientcert=1"을 "clientcert=verify-full"로 바꾸는 가장 좋은 대안을 알려주십시오.

답변1

나는 답을 찾았다. 다음 코드는 나를 위해 일했습니다

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

관련 정보