如何使用转义字符显示多行作为单个字符串的文件(\n)

pab*_*nar 0 bash shell terminal io-redirection

在bash中,我如何显示一个文件的内容,其中多行作为单个字符串显示为新行\n.

例:

$ echo "line 1
line 2" >> file.txt
Run Code Online (Sandbox Code Playgroud)

我需要"line 1\nline2"使用bash命令获取内容.

我尝试使用组合但cat/printf/echo没有成功.

che*_*ner 5

你可以使用bash printf来获得一些东西:

$ printf "%q" "$(< file.txt)"
$'line1\nline2'
Run Code Online (Sandbox Code Playgroud)

bash4.4中有一个新的参数扩展运算符来生成相同的:

$ foo=$(<file.txt)
$ echo "${foo@Q}"
$'line1\nline2'
Run Code Online (Sandbox Code Playgroud)