更好的粘贴命令

Tul*_*ova 15 text-processing columns paste

我有以下两个文件(我用点填充行,因此文件中的每一行都具有相同的宽度,并使 file1 全部大写以使其更清晰)。

contents of file1:

ETIAM......
SED........
MAECENAS...
DONEC......
SUSPENDISSE

contents of file2

Lorem....
Proin....
Nunc.....
Quisque..
Aenean...
Nam......
Vivamus..
Curabitur
Nullam...
Run Code Online (Sandbox Code Playgroud)

请注意,file2 比 file1 长。

当我运行此命令时:

paste file1 file2
Run Code Online (Sandbox Code Playgroud)

我得到这个输出

ETIAM...... Lorem....
SED........ Proin....
MAECENAS... Nunc.....
DONEC...... Quisque..
SUSPENDISSE Aenean...
    Nam......
    Vivamus..
    Curabitur
    Nullam...
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能使输出如下?

ETIAM...... Lorem....
SED........ Proin....
MAECENAS... Nunc.....
DONEC...... Quisque..
SUSPENDISSE Aenean...
            Nam......
            Vivamus..
            Curabitur
            Nullam...
Run Code Online (Sandbox Code Playgroud)

我试过

paste file1 file2 | column -t
Run Code Online (Sandbox Code Playgroud)

但它这样做:

ETIAM......  Lorem....
SED........  Proin....
MAECENAS...  Nunc.....
DONEC......  Quisque..
SUSPENDISSE  Aenean...
Nam......
Vivamus..
Curabitur
Nullam...
Run Code Online (Sandbox Code Playgroud)

不像原始输出那么难看,但无论如何都是错误的。

Mar*_*ick 19

假设您的文件中没有任何制表符,

paste file1 file2 | expand -t 13
Run Code Online (Sandbox Code Playgroud)

with the arg to -tsuitably chosen to cover the desired max line width in file1.

OP 增加了一个更灵活的解决方案:

我这样做了,所以它可以在没有神奇数字 13 的情况下工作:

paste file1 file2 | expand -t $(( $(wc -L <file1) + 2 ))
Run Code Online (Sandbox Code Playgroud)

输入并不容易,但可以在脚本中使用。