2つのテキストファイルを2つの列(左側に1つ、右側に1つ)として出力したいと思います。
paste
1文字だけが区切り文字で挿入されるため、問題は解決されません。したがって、最初のファイルに長さが異なる行がある場合、出力は歪みます。
$ cat file1
looooooooong line
line
$ cat file2
hello
world
$ paste file1 file2
looooooooong line hello
line world
末尾のスペースを追加するコマンドがあると、fmt --add-spaces --width 50
問題は解決されます(1)。
$ paste <(fmt --add-spaces --width 50 file1) file2
looooooooong line hello
line world
しかし、私はこれを行う簡単な方法がわかりません。
それでは、ファイルを水平にマージして歪みなしで標準出力に印刷するにはどうすればよいですか?
実はただ並んで置いて読んでみたかったです。
(1)修正する:たとえば、末尾のスペースを追加するコマンドがありますxargs -d '\n' printf '%-50s\n'
。ただし、行数がそれより少ない場合、実行時に
$ paste <(add-trailing-spaces file1) file2
予想される視覚的出力は生成されません。file1
file2
ベストアンサー1
単一のpr
コマンドを使用します。
pr -Tm file[12]
-T
(--omit-pagination
) - ヘッダーとフッターを省略し、入力ファイルに設定されている改ページで改ページを削除します。-m
(--merge
) - すべてのファイルを1列に1つずつ並列に印刷します。