我知道这pr -m -t file1 file2
会给我 2 列,如下所示:
文件1:
a
abc
abcdefg
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
文件2:
1
123
12345678
12345678901234567890
-
$ pr -m -t file1 file2
a 1
abc 123
abcdefg 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890
上面是文字剪切和粘贴,但在这里我添加了空格以显示它在终端中的实际排列方式:
$ pr -m -t file1 file2
a 1
abc 123
abcdefg 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890
出于某种原因,unix
堆栈交换不会使代码块稳固。无论如何,我不需要匹配行号(但要回答一般问题,您也可以回答如何做到这一点),但我想要的主要属性是让它换行而不是被截断。我是否别无选择,只能将每个文件预处理到一定的宽度并将其输入?如果是这样,我该怎么做呢?
更新:我想如果有一些command
限制文件的宽度并强制换行,我会这样做:pr -m -t <(command file1) <(command file2)
编辑:
关心对齐?
如果您使用此处找到的 perl 脚本,由Peter Stuifzand编写,并为其命名
columnFix.perl
并且chmod u+x columnFix.perl
(为确保您可以执行它,您可以这样做:原答案:
I的版本
pr
默认将行截断为 72 个字符,其中 2 列将第一列截断为 35(35 char/column * 2 columns) + 1 char/separator = 71 characters
(因此第二列可能是 36 个字符)。因此,如果您在没有列对齐的情况下没问题(这与建议的粘贴命令的结果类似),那么您已经运行但使用 a
-J
应该执行您似乎正在寻找的命令(尽可能接近您的原始命令)在评论中)pr -J -m -t file1 file2
从手册页: