Linux 将两个输出显示为两个单独的列| bash

Linux 将两个输出显示为两个单独的列| bash,linux,bash,Linux,Bash,我有两个来自2个命令的输出: comm1=`ip a | grep ens | grep -v lo | cut -d' ' -f2` 输出示例: >eth1 命令二 comm2=`ip a | grep inet| grep -v inet6 | grep -v 127 | cut -d' ' -f6` 输出示例: >123.156.789 234.167.290 148.193.198 138.25.49 142.137.154 125.175.166

我有两个来自2个命令的输出:

comm1=`ip a | grep ens | grep -v lo | cut -d' ' -f2`
输出示例:

>eth1
命令二

comm2=`ip a | grep inet| grep -v inet6 | grep -v 127 | cut -d' ' -f6`
输出示例:

 >123.156.789
  234.167.290
  148.193.198
  138.25.49
  142.137.154
  125.175.166
  246.173.7
  154.167.67
期望输出:

echo "$comm1 $comm2"
> eth1        123.156.789
              234.167.290
              148.193.198
              138.25.49
              142.137.154
              125.175.166
              246.173.7
              154.167.67
如果这是单行输出,那么列-t工作正常

echo "$comm1 $comm2" | column -t
但在这种情况下,当其中一列为多行时,它不起作用。。 寻找有效的解决方案


已编辑

您可能需要粘贴命令

$ seq 1 3 > a.txt
$ seq 5 10 > b.txt
$ paste a.txt b.txt
1       5
2       6
3       7
        8
        9
        10

您可能需要
粘贴
命令

$ seq 1 3 > a.txt
$ seq 5 10 > b.txt
$ paste a.txt b.txt
1       5
2       6
3       7
        8
        9
        10

您可以使用命令粘贴,例如:

  $ paste <(comm1) <(comm2)

$paste您可以使用命令
paste
,例如:

  $ paste <(comm1) <(comm2)

$粘贴您所需的输出似乎不包含任何多行字符串。请编辑您的问题,以表明您希望对多行字符串发生什么。顺便说一句,这种讨厌的大管道通常是一种代码气味。只需一次调用
awk
就可以完成所有
grep
cut
的工作……坦率地说,不能保证今天字段6上的信息明天会在字段6上,因此,最好将
cut
替换为实际查看字符串内部并且仅依赖于文档格式保证的内容。例如,如果您想在
addr
之后输入单词,请匹配它,因为它是
addr
之后的单词,而不是因为它是行中的第六个单词。@Charles Duffy,我乐于接受建议,谢谢您想要的输出似乎不包含任何多行字符串。请编辑您的问题,以表明您希望对多行字符串发生什么。顺便说一句,这种讨厌的大管道通常是一种代码气味。只需一次调用
awk
就可以完成所有
grep
cut
的工作……坦率地说,不能保证今天字段6上的信息明天会在字段6上,因此,最好将
cut
替换为实际查看字符串内部并且仅依赖于文档格式保证的内容。例如,如果你想在
addr
之后找到一个单词,那么就匹配它,因为它是
addr
之后的单词,而不是因为它是行中的第六个单词。@Charles Duffy,我愿意接受建议,谢谢