我有三个文本文件,我想将它们合并到我的 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
的选项(来自,强调我的):pr
man 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