Display two files side by side

command-line, gnu-coreutils, linux, shell, unix

Solution

You can use `pr` to do this, using the `-m` flag to merge the files, one per column, and `-t` to omit headers, eg.

pr -m -t one.txt two.txt

outputs:

apple                               The quick brown fox..
pear                                foo
longer line than the last two       bar
last line                           linux

                                    skipped a line

See Also:

- Print command result side by side

- Combine text files column-wise

Problem

How can 2 unsorted text files of different lengths be display side by side (in columns) in a `shell` Given `one.txt` and `two.txt`: ``` $ cat one.txt apple pear longer line than the last two last line $ cat two.txt The quick brown fox.. foo bar linux skipped a line ``` Display: ``` apple The quick brown fox.. pear foo longer line than the last two bar last line linux skipped a line ``` `paste one.txt two.txt` almost does the trick but doesn't align the columns nicely as it just prints one tab between column 1 and 2. I know how to this with emacs and vim but want the output displayed to stdout for piping ect. The solution I came up with uses `sdiff` and then pipes to sed to remove the output `sdiff` adds. `sdiff one.txt two.txt | sed -r 's/[<>|]//;s/(\t){3}//'` I could create a function and stick it in my `.bashrc` but surely a command for this exists already (or a cleaner solution potentially)?

Original source

Related problems