如何在屏幕

时间:2015-06-17 17:12:15

标签: bash shell awk

如何在屏幕上将三个文本文件合并为三列?

1   A   1
2   B   2
3   C   3
    D
    E

我试过......

paste file1.txt file2.txt file3.txt | column -s $'\t' -t

......但我总是得到

1   A   1
2   B   2
3   C   3
D
E

提前感谢您的帮助!

file1.txt第1-2行

USB Device Class ID:
CdRom&Ven_ZALMAN&Prod__Virtual_CD-Rom&Rev_

file2.txt第1-2行

USB Instance ID:
______XX00000001&1

file3.txt第1-2行

Last updated (Subkey):
2015-01-12 15:08:45 UTC+0000

3 个答案:

答案 0 :(得分:1)

我不知道您的输入文件,但粘贴按预期工作。

$ paste <(seq 1 4) <(seq 10 17) <(seq 5 9)
1       10      5
2       11      6
3       12      7
4       13      8
        14      9
        15
        16
        17

答案 1 :(得分:0)

:|paste -d ' ' file1 - file2 - file3 | column -ts "| "将多个文件合并为一个表column -t-s作为分隔符"| "

输出就像那样

1    A    1
2    B    2
3    C    3
     D    
     E   

答案 2 :(得分:0)

如果您只有3个文件或几个文件可以处理,您可以这样做:

$ paste foo[12].txt | expand -t 45 | paste - foo3.txt | expand -t 12
USB Device Class ID:                         USB Instance ID:           Last updated (Subkey):
CdRom&Ven_ZALMAN&Prod__Virtual_CD-Rom&Rev_   ______XX00000001&1         2015-01-12 15:08:45 UTC+0000
                                             ______XY0000000182
$

您需要根据4512中的最大行宽选择标签扩展foo1.txtfoo2.txt