首页 > 解决方案 > 如何组合两个多行输出命令?

问题描述

我有两个命令,每个命令都输出多行,我想以一种在每个组合行之间有一个空格的方式组合它们。

这些过大的命令应该导入一个 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. sed -n '/Station/q;p' schoolscan-02.csv | sed '/^[[:space:]] $/d' | sed -n '1!p' | awk -F "\" ,\"*" '{打印 $1}'

命令 #1 输出:

一个

b

C

d

命令 #2 输出:

1

2

3

4

我希望输出看起来像:

一个 1

b 2

3

d 4

我可以使用什么命令以这种方式组合这两个命令?

标签: bash

解决方案


使用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}')

无论如何,我可以看到两个awks 的输入是相同的。我很确定您可以通过一次执行awk.


推荐阅读