我有两个文件,每个文件只包含一列数字数据,并且行数相同。使用时paste
,它确实将两个文件中的行合并为一行,但第一个文件的文本被截断,而第二个文件的文本完好无损:
$ head -3 s1_.dat s2_.dat
==> s1_.dat <==
-0.023193359375
-0.020416259766
0.014587402344
==> s2_.dat <==
-0.018707275391
-0.019805908203
0.011108398438
$ paste s1_.dat s2_.dat | head -3
-0.02319-0.018707275391
-0.02041-0.019805908203
0.0145870.011108398438
中是否有列宽限制paste
?
应该没有限制。只是至少您的第一个输入文件具有 DOS/Windows 样式的 CRLF 行结尾,其中回车符 (CR) 在分隔 TAB 和打印下一个值之前将光标位置返回到行首。请注意第二个文件中的值是如何从第一个制表位的位置 8 开始的。
实际输出是这样的:
如果您使用 eg 查看输出,则可以对其进行验证
od -c
,它应该\r
在此处显示 CR。运行文件或输出
tr -d '\r'
以删除 CR。(或dos2unix
任何其他各种方式。)