sed命令不仅适用于1个场景

时间:2015-08-27 13:36:44

标签: unix sh

我的UNIX shell脚本中有这个sed命令行,用于将变量值附加到文件中的现有行。

<application
    ....>
    <receiver android:name="hu.bendaf.AlarmReceiver"/>
    ....
</application>

从下面获取sed "s/.*/&$OptionalCols/" header_scrubbed_vendor_list.dat \ >>final_header_scrubbed_vendor_list_${TODAY}.dat

OptionalCols

附加任务对所有人来说都非常好。但它不适用于低于一个。

Direct_Target_List _ * .dat文件中的第1行是

OptionalCols=`head -1 ${INDIR}Direct_Target_List_*.dat |cut -d'|' -f 19-48`

我得到的错误是

  

sed:命令乱码:s /.*/& amp; ProfessionalDesignatio |段名称   | GLP-用户旗帜| Tanzeum Action Group | Tanzeum   见状态| Total_Access_042014to032015 | SF_Access_042014to032015 | SF_access_012015to032015 |收到   样品| Tanzeum Engagers | Tanzeum   作家| NRx_201410to201503 | TRx_201410to201503 | DM_BRC_dont_use | Email_DMD_Match | CT_Mayo_Match | CT_FPN_Match | CT_IMN_Match | CT_Cons_Match | T / C |集团| Email_Segments | DM_Segments | Alerts_Segments /

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

...CT_Cons_Match|T/C|Group... 中的斜杠很可能被视为分隔符。这看起来很棘手,所以这里有一个摘录:

sed -e 's#regex#replacement#'

您可以让sed使用不同的分隔符。选择一个保证不在输入中的一个。例如:

<%= select_tag "select_genre_manage_audio", options_from_collection_for_select(@music_genre, :id, :name), :prompt=>'Select Genre',:id=>'select_genre_manage_audio',:class=>'select_genre_manage_audio', :style=>"  width: 400px;" %>
in js.erb file i do 
$('#select_genre_manage_audio').html('<%= escape_javascript options_from_collection_for_select(@select_genre_manage_audio,:id,:name),:prompt=>'Select Genre' %>')