出力テキストの列書式設定

出力テキストの列書式設定

ファイルが3つあります。

ファイル1:

compute-0-44
compute-0-2 
compute-0-7 
compute-0-8 

ファイル2:

0
11/29/2017 | 02:01:34
0
05/16/2018 | 08:47:56

ファイル3:

0
963
0
459

これを行うと、paste file1 file2 file 3次のようになります。

compute-0-44    0       0
compute-0-2     11/29/2017 | 02:01:34   963
compute-0-7     0       0
compute-0-8     05/16/2018 | 08:47:56   459

私が望むもの:

compute-0-44    0                       0
compute-0-2     11/29/2017 | 02:01:34   963
compute-0-7     0                       0 
compute-0-8     05/16/2018 | 08:47:56   459

ペーストを使用できますか?目的に合う可能性がある他の選択肢(sedなど)がある場合。

答え1

使用prコマンド:

$ pr -mT file{1..3} | expand
compute-0-44            0                       0
compute-0-2             11/29/2017 | 02:01:34   963
compute-0-7             0                       0
compute-0-8             05/16/2018 | 08:47:56   459

からman pr

   -m, --merge
          print all files in parallel, one in each column, truncate lines,
          but join lines of full length with -J

タブを空白に変換するパイプexpand- アプリケーションによっては不要な場合があります(実際にこのサイトで出力形式がよく見えるようにここに追加しました)。

答え2

sed行に垂直バーがない場合は、2番目のタブを3つのタブに置き換えることができます。

paste file{1..3} | sed '/|/!s/\t/\t\t\t/2'

関連情報