より良い貼り付けコマンド

より良い貼り付けコマンド

次の2つのファイルがあります。ファイルの各行が同じ幅を持つように行をドットで埋め、より明確にするために、file1をすべて大文字にしました。

contents of file1:

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

contents of file2

Lorem....
Proin....
Nunc.....
Quisque..
Aenean...
Nam......
Vivamus..
Curabitur
Nullam...

file2 は file1 より長くなります。

このコマンドを実行するとき:

paste file1 file2

私はこの出力を得る

ETIAM...... Lorem....
SED........ Proin....
MAECENAS... Nunc.....
DONEC...... Quisque..
SUSPENDISSE Aenean...
    Nam......
    Vivamus..
    Curabitur
    Nullam...

次のように出力するにはどうすればよいですか?

ETIAM...... Lorem....
SED........ Proin....
MAECENAS... Nunc.....
DONEC...... Quisque..
SUSPENDISSE Aenean...
            Nam......
            Vivamus..
            Curabitur
            Nullam...

頑張った

paste file1 file2 | column -t

しかし、これは次のようになります。

ETIAM......  Lorem....
SED........  Proin....
MAECENAS...  Nunc.....
DONEC......  Quisque..
SUSPENDISSE  Aenean...
Nam......
Vivamus..
Curabitur
Nullam...

元の出力ほど醜いことはありませんが、とにかく間違った列です。

ベストアンサー1

ファイルにタブ文字がないと仮定すると、

paste file1 file2 | expand -t 13

-tfile1に必要な最大行幅を含めるには、argを適切に選択します。

OPはより柔軟なソリューションを追加しました。

私はマジックナンバー13なしで動作するようにしました。

paste file1 file2 | expand -t $(( $(wc -L <file1) + 2 ))

入力するのは簡単ではありませんが、スクリプトで使用できます。

おすすめ記事