将多个输入流格式化为列

时间:2017-05-22 08:05:21

标签: shell text

如何将来自多个输入流的文本行格式化为并排列?

column command似乎承诺会这样做,但它并没有像预期的那样行事:

$ column -t \
    <(for n in {1..4} ; do echo $n ; done) \
    <(for n in {8..11} ; do echo $n ; done)
1
2
3
4
8
9
10
11

承诺(从手册页)到“确定输入包含的列数并创建表”似乎并非如此。

我想要的是:

$ some_clever_command --with-clever-options \
    <(for n in {1..4} ; do echo $n ; done) \
    <(for n in {8..11} ; do echo $n ; done)
1       8
2       9
3       10
4       11

我应该使用哪些命令和选项?

1 个答案:

答案 0 :(得分:0)

paste命令可以执行此操作:

$ paste -d '\t\n' \
    <(for n in {1..4} ; do echo $n ; done) \
    <(for n in {8..11} ; do echo $n ; done)
1   2
3   4
8   9
10  11