考虑下面的echo命令:
echo -e "at\r"
它会在命令行上产生输出,即\ r特殊字符已被解释。 我想用文件中的某些文本做同样的事情。 假设完全相同的序列
at\r
被写入一个名为at.txt
的文件,然后我想在terminal上显示它。 但
cat at.txt
给出输出
at\r
什么不是我想要的。 我想要特殊的序列\ r来解释,而不是只是打印在terminal上。 任何人的想法?
感谢Alex
为什么不:
while read -r line; do echo -e $line; done < at.txt
您可以简单地:
echo -e $(cat at.txt)
内置的echo
命令解释了常见的反斜杠转义。 但在一个文件中,你必须解释,或以类似的方式转换它。 sed
程序可以做到这一点。
sed -e 's/\\r/\r/' < at.txt
但是我也在这里学到了一些东西。 外部echo
命令与内部echo
命令有所不同。
/bin/echo "\r"
有不同的输出
echo "\r"
但基本上你需要一个过滤器来将litteral \r
字符串转换为单个字节0x0D。