如何在此类文件中翻译常见的转义序列:
abc\n\t\x22def\x22\t123
转义为转义的字符:
abc
"def" 123
Linux中的(Debian和CentOS)?
具体来说,我的意思是:
\n
,
\t
,
\r
,
\\
,
\'
,
\"
,
\0
,
\o**
,
\x**
。
我有一种感觉,没有大的正则表达式或涉及C编译器应该有简单的方法来做到这一点。也许,一些Perl oneliner可以做到吗?还是一些Bash命令?
答案 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)
。