Bash 如何将具有多行的文件显示为带有转义字符的单个字符串(\n)

Bash 如何将具有多行的文件显示为带有转义字符的单个字符串(\n),bash,shell,terminal,io-redirection,Bash,Shell,Terminal,Io Redirection,在bash中,如何将包含多行的文件内容显示为单个字符串,其中新行显示为\n 例如: $ echo "line 1 line 2" >> file.txt 我需要使用bash命令获取内容,如下面的“line 1\nline2” 我尝试使用了cat/printf/echo的组合,但没有成功。您可以尝试从stdin或file中导出字符串,并修剪所需的图案 试试这个: cat file|tr '\n' ' ' 其中file是带有\n的文件名。这将返回一个字符串,其中所有文本都在一行中 如

在bash中,如何将包含多行的文件内容显示为单个字符串,其中新行显示为
\n

例如:

$ echo "line 1
line 2" >> file.txt
我需要使用bash命令获取内容,如下面的
“line 1\nline2”


我尝试使用了
cat/printf/echo
的组合,但没有成功。

您可以尝试从stdin或file中导出字符串,并修剪所需的图案

试试这个:

cat file|tr '\n' ' '
其中file是带有\n的文件名。这将返回一个字符串,其中所有文本都在一行中

如果要将结果写入文件,只需重定向命令的结果,如下所示

cat file|tr '\n' ' ' >> file2
下面是另一个例子:

您可以尝试从stdin或文件中插入字符串,然后修剪所需的图案

试试这个:

cat file|tr '\n' ' '
其中file是带有\n的文件名。这将返回一个字符串,其中所有文本都在一行中

如果要将结果写入文件,只需重定向命令的结果,如下所示

cat file|tr '\n' ' ' >> file2
下面是另一个例子:

您可以使用
paste
命令以分隔符(例如
~
)顺序粘贴所有的
~
)行,并使用
sed
命令将所有
~
替换为
\n


您可以使用
paste
命令以分隔符(比如
~
)顺序粘贴所有行,并使用
sed
命令将所有
~
替换为
\n

您可以使用bash的
printf
来接近:

$ printf "%q" "$(< file.txt)"
$'line1\nline2'

您可以使用bash的
printf
来接近:

$ printf "%q" "$(< file.txt)"
$'line1\nline2'
如果文件2后面没有“\n”,则需要使用echo-n

第2行后面有“\n”

如果文件2后面没有“\n”,则需要使用echo-n

第2行后面有“\n”


此工具还可以显示字符代码:

$ hexdump -v -e '/1 "%_c"' file.txt ; echo
line 1\nline 2\n

$ od -vAn -tc file.txt 
   l   i   n   e       1  \n   l   i   n   e       2  \n

此工具还可以显示字符代码:

$ hexdump -v -e '/1 "%_c"' file.txt ; echo
line 1\nline 2\n

$ od -vAn -tc file.txt 
   l   i   n   e       1  \n   l   i   n   e       2  \n

可能的XY问题:为什么您认为您需要这个?您真的想要输出中的dbl引号吗?祝你好运。可能的XY问题:为什么你认为你需要这个?你真的想要输出中的dbl引号吗?祝你好运,很好用!唯一的问题是在美元符号前缺少一个双引号。很好用!唯一的问题是在美元符号前缺少一个双引号。问题是要获取
\n
而不是作为“行分隔符”的空格。问题是要获取
\n
而不是作为“行分隔符”的空格