是否有一个简单的实用程序或脚本可以将我的某个脚本的输出列化?我有某种形式的数据:
A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn
F kjhnakjshddnaskjdh
但如果这变成两个长,请按以下形式写入数据(仍垂直排序):
A aldkhasdfljhaf D lseuiorlhisnflkc
B klajsdfhalsdfh E sdjklfhnslkdfhn
C salkjsdjkladdag F kjhnakjshddnaskjdh
从阅读手册页来看,我认为这不column
适合,但我不确定。很容易分割成以下形式:
A B
C D
E F
只打印\n
每隔一行(我当前脚本的作用)。有任何想法吗?谢谢!
答案1
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
答案2
要对输出进行分列,pr
请转换文本文件以进行打印:
-COLUMN, --columns=COLUMN: output COLUMN columns
and print columns down, unless -a is used.
-t, --omit-header : omit page headers and trailers
例如
ls /etc | pr -2 -t
abrt gtk-2.0
acpi hal
adjtime hba.conf
agent.properties host.conf
aliases hosts
aliases.db hosts.allow
...
答案3
您可以将文件分成两部分(行数相同或第一个文件多一行),然后执行以下操作:
paste file1 file2
如果行的长度差异太大,则可能需要使用 printf 通过用空格填充来调整长度。
答案4
您可以简单地使用columns
:
$ cat test.txt | columns
A aldkhasdfljhaf B klajsdfhalsdfh C salkjsdjkladdag
D lseuiorlhisnflkc E sdjklfhnslkdfhn F kjhnakjshddnaskjdh
笔记:该命令是我的 Fedora 14 系统上的软件包columns
的一部分。autogen
$ rpm -qf /usr/bin/columns
autogen-5.9.4-7.fc12.x86_64