使用SED将ruby部分w('<%=字符)附加到文件末尾

时间:2012-07-21 20:45:47

标签: shell unix sed

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

<%= 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在这个错误中指的是什么,因为它似乎不是文件而且(我认为)它也在读取整个字符串。帮助

3 个答案:

答案 0 :(得分:0)

为什么不用bash单行脚本?

for file in $(ls school_guide*); do echo "<%= render 'success_guide_menu' %>" >> $file; done

答案 1 :(得分:0)

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

sed -i.bak -e "$ a\<%= render 'success_guide_menu' %>" school_guide*

答案 2 :(得分:0)

这可能适合你(GNU sed):

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