我尝试替换文本文件中的一些文本。在我的脚本中,我存储了要在两个变量中查找和替换的文本:
$currentProductName='hello'
$configProductName='byebye'
Run Code Online (Sandbox Code Playgroud)
替换是用这一行完成的:
sed -i'.bak' 's/$currentProductName/$configProductName/g' "$projectFile"
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我的任何变量都包含空格。如果$configProductName设置为hello world的sed命令不能按预期工作。
我已经尝试过这个,但它也不起作用:
sed -i'.bak' 's/"$currentProductName"/"$configProductName"/g' "$projectFile"
sed -i'.bak' 's/\$currentProductName/\$configProductName/g' "$projectFile"
Run Code Online (Sandbox Code Playgroud)
我必须如何更改线路才能按预期工作?
为了保留空格,您需要用双引号引用变量并再次用单引号将其包裹起来。通过这种方式,您可以控制$需要扩展哪些前缀为前缀的变量。
configProductName='hello world'
Run Code Online (Sandbox Code Playgroud)
使用如下sed操作,并在-i发现它按预期工作后添加标志。
sed 's/$currentProductName/'"$configProductName"'/g' file
hello world='hello'
$configProductName='byebye'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5809 次 |
| 最近记录: |