我需要将 's3_bucket': 'pass' 更改为 hello 但它不起作用
例如:
echo "'s3_bucket': 'pass'" | sed 's/'s3_bucket':/hello/'
输出:
's3_bucket':'pass'
请帮助理解我做错了什么
答案1
引用是错误的。该部分's/'s3_bucket':/hello/'
由 shell 解释为'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/'
请注意,在第二个版本中, 中有两个相邻的单引号'\''
,而不是双引号。
还有更多可能的引用方式,请参阅这个类似问题的答案。