Awk 基于另一列从列中提取数据

Awk 基于另一列从列中提取数据,awk,Awk,我有一些文件如下所示。我想根据$1提取$5的值 文件1 文件2 我使用以下代码提取了$5 awk '$1 == "rehna" { print $5 }' * awk '$1 == "sam" { print $5 }' * 我希望得到如下所示的输出 rehna sam 26.0 19.8 37.6 69.9 5.0 30.9 我如何做到这一点?您的建议将不胜感激 更新:此后,本着。如果你想了解更多的背景信息,请继续阅读 假设Bash、Ksh

我有一些文件如下所示。我想根据$1提取$5的值

文件1

文件2

我使用以下代码提取了$5

awk '$1 == "rehna" { print $5 }' *
awk '$1 == "sam" { print $5 }' *
我希望得到如下所示的输出

rehna   sam
26.0    19.8
37.6    69.9
         5.0
        30.9
我如何做到这一点?您的建议将不胜感激

更新:此后,本着。如果你想了解更多的背景信息,请继续阅读

假设Bash、Ksh或Zsh是shell:

printf '%s\t%s\n' 'rehna' 'sam'
paste \
     <(awk '$1 == "rehna" { print $5 }' *) \
     <(awk '$1 == "sam"   { print $5 }' *)
如果任何输入文件的行数不足,它将提供空行


在本例中,
awk
命令的相应输出用作输入文件,使用(
最简单的方法可能是将结果粘贴在一起:

#!/bin/bash

function myawk {
    awk -v name="$1" 'BEGIN {print name} $1 == name { print $5 }' file1 file2
}

paste  <(myawk rehna) <(myawk sam)
!/bin/bash
函数myawk{
awk-v name=“$1”'开始{print name}$1==name{print$5}文件1文件2
}
粘贴
printf '%s\t%s\n' 'rehna' 'sam'
paste \
     <(awk '$1 == "rehna" { print $5 }' *) \
     <(awk '$1 == "sam"   { print $5 }' *)
 <line 1 from fileA>\t<line 1 from fileB>
 <line 2 from fileA>\t<line 2 from fileB>
 ...
#!/bin/bash

function myawk {
    awk -v name="$1" 'BEGIN {print name} $1 == name { print $5 }' file1 file2
}

paste  <(myawk rehna) <(myawk sam)