如何解释文件中的特殊字符?

时间:2016-04-28 12:03:35

标签: bash scripting

如何在此类文件中翻译常见的转义序列:

abc\n\t\x22def\x22\t123

转义为转义的字符:

abc
    "def"    123
Linux中的

(Debian和CentOS)?

具体来说,我的意思是: \n\t\r\\\'\"\0\o**\x**

我有一种感觉,没有大的正则表达式或涉及C编译器应该有简单的方法来做到这一点。也许,一些Perl oneliner可以做到吗?还是一些Bash命令?

2 个答案:

答案 0 :(得分:2)

使用echo

# echo -e "abc\n\t\x22def\x22\t123"
echo -e "`cat file`"

输出:

abc
        "def"   123

答案 1 :(得分:2)

jotik的回答非常好。您也可以使用:

echo -e "$(< file)"

请参阅:

$ echo -e "$(< file)"
abc
    "def"   123

来自man bash

  

命令替换

     

命令替换允许输出命令来替换com   命名。有两种形式:

          $(command)
     

          `command`
     

Bash通过执行命令并替换来执行扩展   使用命令的标准输出命令替换   删除任何尾随新行。嵌入的换行不会被删除,但是   它们可能在分词时被删除。

     

命令替换$(cat file)可以替换为等效但更快$(< file)