首页 > 解决方案 > 将文件读取到变量,然后用转义字符替换控制字符

问题描述

我有一个像下面这样的文件

 # cat test
Start   tab
enter 

或带有控制字符

# cat -A test
Start^Itab$
enter$

我想将文件转换为与下面完全相同的变量

file = "Start\ttab\nenter"  

echo -e $file
Start   tab
enter

我们如何仅使用 bash 脚本来实现这一点(不使用任何编程语言,如 perl 或 python)。

请注意:这里的文件只是示例,我确实有非常大的文件,其中包含复杂的控制字符,所以像“sed”这样的方法在这里不起作用。

标签: linuxbashshell

解决方案


mapfile data < /path/to/file

将文件作为数组存储在数据中

printf '%s' "${data[@]}"

推荐阅读