【发布时间】:2017-01-05 22:59:30
【问题描述】:
我正在使用以下代码将标题“Both”和一个空行添加到文件中。
sed -i '1i Both \n' file1
当我打开文件时,我可以看到换行符。
但是,当我使用以下命令粘贴文件时,它会删除 shell 中的换行符。
paste file1 file2 | column -s $'\t' -t | sed '1i\\'
有人知道为什么粘贴无法识别吗?
更具体地说,/n 字符正在被识别,但如果换行符在同一行中,paste 将消除它。
正在输出什么:
Header1 Header2
abc def
ghi jkl
应该是什么:
Header1 Header2
abc def
ghi jkl
我知道它会删除换行符,因为当我只在一个文件中添加新行时,它看起来像这样:
Header1 Header2
def
abc jkl
ghi
作为临时解决方法,我使用sed -i '1i Both \n----' file1 强制粘贴打印新行,因为它不为空:
Header1 Header2
---- ----
abc def
ghi jkl
而且,它保留了换行符,所以我想,当将两个文件粘贴在一起时,如何将新行保留在一行中?
【问题讨论】:
-
你能发布你得到的和你期望的吗?
-
刚刚提供了更多细节。
-
与此同时,我正在使用
sed -i '1i Both \n----'强制识别新行,因为它不为空,并在标题和数据之间提供了一个分隔符。 -
嗯? “被
paste识别”?您正在对paste的输出 执行此操作。paste看不到它的输出做了什么;它无法与sed进程交互。
标签: linux shell unix sed command