我有两个文件,每个文件仅包含一列数字数据,并且行数相同。使用 时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
?
答案1
不应该有限制。只是至少您的第一个输入文件具有 DOS/Windows 样式的 CRLF 行结尾,其中回车符 (CR) 将光标位置返回到打印分隔 TAB 和下一个值之前的行开头。请注意第二个文件中的值如何从第一个制表位的位置 8 开始。
实际的输出是这样的:
-0.023193359375<CR><TAB>-0.018707275391<NL>
如果您使用eg查看输出od -c
,您可以验证它,它应该显示\r
那里的CR。
运行文件或输出tr -d '\r'
以删除 CR。 (或dos2unix
或任何其他各种方式。)