如何在sed中使用unicode?
问题描述:
我想使用sed将txt文件转换为html。如何在sed中使用unicode?
但是,要匹配html语法,我需要包含标签(因此也包括<和>)。当我在sed表达式中使用这些字符时,sed认为我指定了源文件或目标文件,即使我将它们转义。我不断收到消息“系统找不到指定的文件”。
我该如何避免这种情况?我可以以某种方式使用unicode号码吗?
源文件:input.txt中
内容:
Hello world!
期望中的目标文件:output.htm
内容:
<html><body>Hello world!</body></html>
sed命令不工作:
sed -r 's#(.*)#\<html\>\<body\>\1\<\/body\>\<\/html\>#g' <input.txt >output.htm
答
通过简单shell
的printf
功能:
printf "<html><body>%s</body></html>\n" "$(< input.txt)" > output.htm
的output.htm
内容:
<html><body>Hello world!</body></html>
如果您仍然需要sed
方法(通过某些目的) :
echo -e "<html><body>\n</body></html>" | sed '1 r input.txt' > output.htm
-
1 r input.txt
- 在这里r
命令将读取并通过HTML内容的1
第一行(行由\n
分隔)
的output.htm
内容后插入的input.txt
内容:
<html><body>
Hello world!
</body></html>
答
你可以保持更多的SIM卡如下所示。
echo "<html><body>" && cat Input_file && echo "</body></html>"
输出如下。
<html><body>
Hello world!
</body></html>
这种简单的情况下你不需要的sed – RomanPerekhrest
嘛,['sed的-r的##
\ 1#g''(*)(https://开头ideone。 com/dpMnsC)的作品。 –