Bash 如何将具有多行的文件显示为带有转义字符的单个字符串(\n)
在bash中,如何将包含多行的文件内容显示为单个字符串,其中新行显示为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的文件名。这将返回一个字符串,其中所有文本都在一行中 如
\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
而不是作为“行分隔符”的空格