包含UTF8字符的Sed插入变量

时间:2018-02-15 11:27:42

标签: bash sed utf-8

我正在尝试将tree通过sed生成的html目录结构插入到现有的html文件中。

问题:目录结构包含html标记和非ASCII字符:

<a href="Wiki">Wiki</a><br> ├── <a href="Wiki/Servers/">Servers</a><br> │   ├── <a href="Wiki/Servers/Plesk-Umzug.html">Plesk-Umzug.html</a><br> │   └── <a href="Wiki/Servers/web02.html">web02.html</a><br> ├── <a href="Wiki/SmartHome/">SmartHome</a><br> │   └── <a href="Wiki/SmartHome/Linksamlung/">Linksamlung</a><br> │   &nbsp;&nbsp;&nbsp; ├── <a href="Wiki/SmartHome/Linksamlung/Homematic.html">Homematic.html</a><br> │   &nbsp;&nbsp;&nbsp; └── <a href="Wiki/SmartHome/Linksamlung/Netzwerk-scripte.html">Netzwerk-scripte.html</a><br> ├── <a href="Wiki/tmp.html">tmp.html</a><br> └── <a href="Wiki/Verwaltung/">Verwaltung</a><br> &nbsp;&nbsp;&nbsp; ├── <a href="Wiki/Verwaltung/Bank.html">Bank.html</a><br> &nbsp;&nbsp;&nbsp; └── <a href="Wiki/Verwaltung/Zugangsdaten.html">Zugangsdaten.html</a><br> <br><br> </p>

如何告诉sed将此文本插入我的文件?

sed -i "11i${MENU}" $FILENAME会返回以下错误:sed: -e expression #1, char 34: unknown command:�&#39;`

更新

添加tr -cd '\11\12\40-\176'以删除非ASCII字符。当前的问题是HTML中的<>字符。我想我需要逃脱它们?

错误讯息是

sed: -e expression #1, char 35: unknown command: `<'

在python中重新实现。

1 个答案:

答案 0 :(得分:0)

如果您要在第11行前插入一行sed,则语法更明确:

sed -i "11 i ${MENU}" $FILENAME

另外,请分享如何在变量中保存html标记,您应该使用:

MENU='you html tag'
sed -i "11 i ${MENU}" $FILENAME