将长输出拆分为两列

Hem*_*mer 31 awk shell-script text-processing columns

是否有一个简单的实用程序或脚本可以将我的一个脚本的输出分列?我有某种形式的数据:

A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn
F kjhnakjshddnaskjdh
Run Code Online (Sandbox Code Playgroud)

但如果这变成两个长,请按以下形式写入数据(仍然垂直排序):

A aldkhasdfljhaf    D lseuiorlhisnflkc
B klajsdfhalsdfh    E sdjklfhnslkdfhn
C salkjsdjkladdag   F kjhnakjshddnaskjdh
Run Code Online (Sandbox Code Playgroud)

通过阅读联机帮助页,我认为这column不适合,但我不确定。很容易拆分成以下形式:

A B 
C D 
E F
Run Code Online (Sandbox Code Playgroud)

通过只打印\n每两行(我当前的脚本所做的)。有任何想法吗?谢谢!

ter*_*don 24

column 似乎是你想要的:

$ cat file
A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn

$ column file
A aldkhasdfljhaf    D lseuiorlhisnflkc
B klajsdfhalsdfh    E sdjklfhnslkdfhn
C salkjsdjkladdag   F kjhnakjshddnaskjdh
Run Code Online (Sandbox Code Playgroud)


小智 15

要对输出进行分列,请pr转换文本文件以进行打印:

-COLUMN, --columns=COLUMN: output COLUMN columns
      and print columns down, unless -a is used.

-t, --omit-header : omit page headers and trailers
Run Code Online (Sandbox Code Playgroud)

例如

ls /etc | pr -2 -t
abrt                                gtk-2.0
acpi                                hal
adjtime                             hba.conf
agent.properties                    host.conf
aliases                             hosts
aliases.db                          hosts.allow
...
Run Code Online (Sandbox Code Playgroud)