sed命令在脚本中执行的一个坑
sed 在脚本中执行时,只能用双引号
直接shell执行时,单引号和双引号都能成功,在脚本中使用单引号不仅不能成功执行,且不会报错,调试该问题时,让人一脸懵逼,直至怀疑人生!
# shell 命令执行时,效果相同
sed -i 's/源字符串/替换后字符串/g' filename
sed -i "s/源字符串/替换后字符串/g" filename
# shell 脚本运行时,只有双引号才能成功
sed -i "s/源字符串/替换后字符串/g" filename
sed 的分隔符
对于以下常见的sed方式,如果源字符串
或替换后字符串
中包含 /
,会执行出错
sed分隔符可以有多种,比如: /
|
sed -i "s/源字符串/替换后字符串/g" filename
# 源字符串 或 替换后字符串 中包含 / 时会出错,可修改为 |
sed -i "s|源字符串|替换后字符串|g" filename