1

I know that pr -m -t file1 file2 will give me 2 columns like so:

file1:

a
abc
abcdefg
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

file2:

1
123
12345678
12345678901234567890

-

$ pr -m -t file1 file2
a                   1
abc                 123
abcdefg                 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890

Above is a literal cut and paste, but here I added spaces to show how it really lines up in the terminal:

$ pr -m -t file1 file2
a                                   1
abc                                 123
abcdefg                             12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890

For some reason, unix stack exchange doesn't make the code blocks solid. Anyway, I don't need the line numbers to match up (but to answer the general question, you could also answer how to do that) but the main property I want is to make it so that the lines wrap instead of getting truncated. Do I have no choice but to preprocess each file to a certain width and pipe that in? If so, how would I even do that?

Update: I suppose if there was some command which restricted the width of a file and forced wrapping into new lines, I'd do: pr -m -t <(command file1) <(command file2)

Timothy Swan
  • 141
  • 10

1 Answers1

0

EDIT:

Care about alignment?

If you take the perl script found here, written by Peter Stuifzand, and were to name it columnFix.perl and chmod u+x columnFix.perl (to be sure you can execute it, you can do this:

pr -J -m -t file1 file2 | /path/to/columnFix.perl

Original answer:

The versions of pr I have truncate lines by default to 72 characters, with 2 columns that cuts the first column to 35 (35 char/column * 2 columns) + 1 char/separator = 71 characters (so the second column is possibly 36 characters).

So the same command you've run but with a -J should do what you seem to be looking for (with as close to your original command as possible) if you are fine with no column alignment (this is a similar result to the paste command suggested in comments)

pr -J -m -t file1 file2

From the man page:

-J, --join-line

merge full lines, turns off -W line truncation, no column alignment, --sep-string[=STRING] sets separators

cunninghamp3
  • 621
  • 7
  • 17