考虑以下echo命令:
echo -e "at\r"
在命令行上生成输出at
,即已解释\ r \ n特殊字符。我想用文件中的一些文本做同样的事情。假设完全相同的序列
at\r
写入名为at.txt
的文件,然后我想在终端上显示它。但
cat at.txt
给出输出
at\r
什么不是我想要的。我希望解释特殊序列\ r \ n,而不仅仅是在终端上打印。任何人都有任何想法?
由于 亚历
答案 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。