bash脚本sed命令意外EOF同时寻找匹配的“”

时间:2016-04-01 05:23:19

标签: bash sed

我一直在尝试编写一个Bash脚本,它可以自动化为MRTG图表添加新设备所需的一切。部分原因是我需要编辑一个我读过的cfg文件,可以使用sed命令完成。下面粘贴的行是运行脚本时发生错误的地方,给我一个“意外的EOF,同时寻找匹配的”“”错误。镇,塔,设备和方向在上面声明。任何帮助缩小问题可能会是一个巨大的帮助!

newpattern="WorkDir: /var/www/html/mrtg/$town/$tower/$equipment$direction"
pattern="WorkDir: "
sudo sed -e "s/$pattern/$newpattern/" ~/MRTGconfigs/mrtg-BeatriceBSWT2960.cfg

1 个答案:

答案 0 :(得分:2)

你需要在s///命令中使用除斜杠之外的东西,因为替换文本中有大量的斜杠:

newpattern="WorkDir: /var/www/html/mrtg/$town/$tower/$equipment$direction"
pattern="WorkDir: "
sudo sed -e "s%$pattern%$newpattern%" ~/MRTGconfigs/mrtg-BeatriceBSWT2960.cfg

我使用了%个符号;您可以使用$pattern$newpattern中既不显示的任何其他字符。如果需要,可以使用控制字符,例如 Control-A ;这也很好。