Linux 粘贴命令无法识别脚本中的换行符(/n)
我使用下面的代码将标题“Both”和一个空行预先添加到文件中Linux 粘贴命令无法识别脚本中的换行符(/n),linux,shell,unix,sed,command,Linux,Shell,Unix,Sed,Command,我使用下面的代码将标题“Both”和一个空行预先添加到文件中 sed -i '1i Both \n' file1 当我打开文件时,我可以看到换行符 但是,当我使用以下命令粘贴文件时,它会删除shell中的换行符 paste file1 file2 | column -s $'\t' -t | sed '1i\\' 有人知道为什么粘贴无法识别这一点吗 更具体地说,可以识别/n字符,但是如果换行符在同一行中,则“粘贴”将消除换行符 正在输出的内容: Header1 Header2 abc
sed -i '1i Both \n' file1
当我打开文件时,我可以看到换行符
但是,当我使用以下命令粘贴文件时,它会删除shell中的换行符
paste file1 file2 | column -s $'\t' -t | sed '1i\\'
有人知道为什么粘贴无法识别这一点吗
更具体地说,可以识别/n字符,但是如果换行符在同一行中,则“粘贴”将消除换行符
正在输出的内容:
Header1 Header2
abc def
ghi jkl
应该是什么:
Header1 Header2
abc def
ghi jkl
我知道它会删除换行符,因为当我只在一个文件中预编新行时,它看起来是这样的:
Header1 Header2
def
abc jkl
ghi
作为一种临时解决方法,我正在使用sed-I'1i-eath\n--'file1
强制粘贴打印新行,因为新行不是空的:
Header1 Header2
---- ----
abc def
ghi jkl
而且,它保留了新行,所以我想,在粘贴两个文件时,如何将新行始终保留在一行中?这里不需要
sed
。注意:
# defining functions here to make this a standalone reproducer
# remove these and change <(file1) to just file1 to use files instead
file1() { printf '%s\n' Header1 abc ghi; }
file2() { printf '%s\n' Header2 def jkl; }
# use braces to create a code block, and redirect that whole block to your output file
{
printf '%s\n' Both '' # header, then blank line
paste <(file1) <(file2) | column -s $'\t' -t # body content
} >out.txt # redirection
#在此处定义函数,使其成为独立的复制机
#删除这些内容并进行更改您可以发布您得到的内容和您期望的内容吗?只是提供了一些详细信息。同时,我正在使用sed-I'1i-eath\n-->
强制识别新行,因为它不是空的,并在标题和数据之间给我一个分隔符。嗯?“由粘贴识别”
“?您正在对粘贴的输出执行此操作<代码>粘贴
无法查看对其输出所做的操作;它无法与sed
进程交互。