我想使用sed将txt文件转换为html。
但是,为了匹配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
答案 0 :(得分:2)
使用简单的shell
&#39; 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内容的input.txt
st行之后插入1
的内容(由{{1}分隔的行}) \n
内容:
output.htm
答案 1 :(得分:0)
您可以按照以下方式更简单。
echo "<html><body>" && cat Input_file && echo "</body></html>"
输出如下。
<html><body>
Hello world!
</body></html>