如何在Linux中制作'cat'来解释控制字符

时间:2012-08-29 09:56:56

标签: linux escaping echo cat

考虑以下echo命令:

 echo -e "at\r"

在命令行上生成输出at,即已解释\ r \ n特殊字符。我想用文件中的一些文本做同样的事情。假设完全相同的序列

at\r

写入名为at.txt的文件,然后我想在终端上显示它。但

cat at.txt

给出输出

at\r

什么不是我想要的。我希望解释特殊序列\ r \ n,而不仅仅是在终端上打印。任何人都有任何想法?

由于   亚历

3 个答案:

答案 0 :(得分:11)

为什么不:

while read -r line; do echo -e $line; done < at.txt

答案 1 :(得分:7)

你可以简单地说:

echo -e $(cat at.txt)

答案 2 :(得分:1)

内置echo命令解释常见的反斜杠转义。但是在文件中,您必须以类似的方式解释或转换它。 sed程序可以执行此操作。

sed -e 's/\\r/\r/' < at.txt

但我也在这里学到了一些东西。外部echo命令的行为与内部命令不同。

/bin/echo "\r"

输出不同于

echo "\r"

但基本上你需要一个过滤器来将litteral \r字符串转换为单个字节0x0D。