不明な数のスペースを含むファイルから検索して置換する[重複]

不明な数のスペースを含むファイルから検索して置換する[重複]

ファイルから文字列を検索して置換するのに役立ちます。

私のファイルの内容

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

おすすめ記事