sedは引用符付き文字列のため、期待どおりに機能しません。

sedは引用符付き文字列のため、期待どおりに機能しません。

's3_bucket': 'pass' を hello に変更する必要がありますが、動作しません。

例: echo "'s3_bucket': 'pass'" | sed 's/'s3_bucket':/hello/' 出力:
's3_bucket': 'pass'

私が間違っていることを理解するのを手伝ってください。

答え1

引用が間違っています。この部分は's/'s3_bucket':/hello/'シェルによって合計's/'と結果が引数として解釈されます。s3_bucket':/hello/'s/s3_bucket:/hello/sed

努力する

echo "'s3_bucket': 'pass'" | sed "s/'s3_bucket':/hello/"

または

echo "'s3_bucket': 'pass'" | sed 's/'\''s3_bucket'\'':/hello/'

2番目のバージョンには、'\''二重引用符の代わりに2つの隣接する一重引用符があります。

参照できるより多くの方法があります。この同様の質問に対する答え

関連情報