これは簡単なはずですが、正しい構文を理解できないようです。次の行を含むファイルがあります: host 'reg' 'PROC' 'admin' 'EIFEBJFFBOENGKGF'
host は引用符で囲まれておらず、唯一の定数です。引用されている他の値の正確な値はわかりません。私がやりたいことは、単一引用符で囲まれた最初の単語、この場合は「reg」を新しい値に置き換え、残りの行をそのままにしておくことです。私はいくつかのバリエーションを試しました:
echo "ホスト 'reg' 'NCO_PA' 'bsmadmin' 'EIFEBJFFBOENGKGF'" | sed "/host/s/['*']/'newvalue'/"
ホスト 'newvalue'reg' 'NCO_PA' 'bsmadmin' 'EIFEBJFFBOENGKGF'
echo "ホスト 'reg' 'NCO_PA' 'bsmadmin' 'EIFEBJFFBOENGKGF'" | sed "/host/s/[\'.\']/\'newvalue\'/"
ホスト 'newvalue'reg' 'NCO_PA' 'bsmadmin' 'EIFEBJFFBOENGKGF'
最初の一重引用符を値に置き換えるだけのようです。だから私の目標は変わることです
ホスト 'reg' 'PROC' 'admin' 'EIFEBJFFBOENGKGF'
に
ホスト 'newvalue' 'PROC' 'admin' 'EIFEBJFFBOENGKGF'
2 番目のフィールドの値はホスト名になるため、ホスト名、reg.test.com、reg-1.test.com、boo.radley.com などに有効な任意の文字が含まれる可能性があります。一重引用符。
前もって感謝します。