pr 正在截断输出

pr 正在截断输出

我有三个文本文件,我想将它们合并到我的 Linux 计算机上的一个文本文件中。

输入文件:

1_val.txt

0x0000000000060b7c02555b80
0x0000000000060b7c026c6580
0x0000000000060b7c0285ff80

2_val.txt

0x0000000000060b7c0257a180
0x0000000000060b7c026eab80
0x0000000000060b7c02884580

3_val.txt

2.2734
2.2734
2.2734

预期输出:

值.txt

0x0000000000060b7c02555b80 0x0000000000060b7c0257a180 2.2734
0x0000000000060b7c026c6580 0x0000000000060b7c026eab80 2.2734
0x0000000000060b7c0285ff80 0x0000000000060b7c02884580 2.2734

生成的输出:第一列和第二列中的最后三个值丢失。

0x0000000000060b7c02555 0x0000000000060b7c0257a 2.2734
0x0000000000060b7c026c6 0x0000000000060b7c026ea 2.2734
0x0000000000060b7c0285f 0x0000000000060b7c02884 2.2734

我用来完成这个任务的代码,

pr -m -t 1_val.txt 2_val.txt 3_val.txt > values.txt

答案1

使用paste并指定空格分隔符:

paste -d' ' 1_val.txt 2_val.txt 3_val.txt >values.txt

问题是默认情况下将截断长行-m的选项(来自,强调我的):prman pr

-m,--合并

并行打印所有文件,每列一个,
截断行,但用 -J 连接全长行

就您而言,这是从第一个文件中删除每行的最后几个字符。

答案2

使用-J开关连接整行并关闭行截断。

pr -J -m -t 1_val.txt 2_val.txt 3_val.txt > values.txt

或者将页面宽度设置为足够大的值:

pr -W80 -m -t 1_val.txt 2_val.txt 3_val.txt > values.txt

相关内容