为什么粘贴命令会截断输入文件之一?

为什么粘贴命令会截断输入文件之一?

我有两个文件,每个文件仅包含一列数字数据,并且行数相同。使用 时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或任何其他各种方式。)

相关内容