0

我正在尝试将此行添加到一组文件的末尾:

<%= render 'success_guide_menu' %>

所有这些文件都以“school_guide”开头。

我尝试使用以下 sed 脚本:

sed "
$ a\
<%= render 'school_guide_menu' %>
" school_guide*

但我收到一条错误消息

 sed: 1: "$ a\<\%\= render 'schoo ...": extra characters after \ at the end of a command

我试图转义字符但没有成功,我不确定 sed 在这个错误中指的是什么,因为它似乎不是文件,而且(我认为)它也在读取整个字符串。帮助?

4

3 回答 3

0

为什么不是 bash 单行脚本?

for file in $(ls school_guide*); do echo "<%= render 'success_guide_menu' %>" >> $file; done
于 2012-07-21T21:22:52.217 回答
0

一种使用方式sed。我使用-i带有.bak后缀的 switch 来就地修改文件并创建备份。

sed -i.bak -e "$ a\<%= render 'success_guide_menu' %>" school_guide*
于 2012-07-21T22:38:33.880 回答
0

这可能对您有用(GNU sed):

sed -i '$a\<%= render '\''school_guide_menu'\'' %>' school_guide*
于 2012-07-22T07:54:56.267 回答