如何合并两个多行输出命令?

时间:2019-04-03 18:46:54

标签: bash

我有两个命令,每个命令输出多行,并且我希望以一种在每条合并的行之间有一个空格的方式来合并它们。

这些超大命令应该导入airodump-ng csv文件,然后从文件中提取两列数据。然后,他们清除了我不需要的所有多余字符。

  
      
  1. sed -n'/ Station / q; p'schoolscan-02.csv | sed'/ ^ [[:space:]] $ / d'| sed -n'1!p'| awk -F“ \” ,\“ *”'{print $ 4}'| tr -d''

  2.   
  3. sed -n'/ Station / q; p'schoolscan-02.csv | sed'/ ^ [[:space:]] $ / d'| sed -n'1!p'| awk -F“ \” ,\“ *”'{print $ 1}'

  4.   

命令1输出:

  

a

     

b

     

c

     

d

命令2输出:

  

1

     

2

     

3

     

4

我希望输出看起来像:

  

a 1

     

b 2

     

c 3

     

d 4

我可以使用哪种命令将这两个命令结合在一起?

2 个答案:

答案 0 :(得分:1)

使用paste并将两个流都馈入(一个用于命令):

paste -d' ' <(sed -n '/Station/q;p' schoolscan-02.csv | sed '/^[[:space:]]$/d' | sed -n '1!p' | awk -F "\",\"*" '{print $4}' | tr -d ' ') <(sed -n '/Station/q;p' schoolscan-02.csv | sed '/^[[:space:]]$/d' | sed -n '1!p' | awk -F "\",\"*" '{print $1}')

无论如何,我可以看到两个awk的输入是相同的。我很确定您只需执行awk就可以实现目标。

答案 1 :(得分:0)

鉴于程序各自的输出位于文件12中,您可以像这样使用paste逐行组合它们:

paste -d' ' 1 2