如何在Linux中制作“猫”来解释控制字符

考虑下面的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。