匹配两个文件中的行和字段

Ris*_*ish 2 awk

我想将一个文件中的记录号与另一个文件中的相同字段号匹配:

文件1:

1
3
5
4
3
1
5
Run Code Online (Sandbox Code Playgroud)

文件2:

A B C D E F G
H I J J K L M
N O P Q R S T
Run Code Online (Sandbox Code Playgroud)

我想使用5第一个文件中对应的记录号来获取第二个文件中的相应字段.期望的输出:

C G
J M
P T
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经完成了:

awk '{ if ($1=="5") print NR }' file1 > temp
for i in $(cat temp); do
    awk '{ print $"'${i}'" }' file2
done
Run Code Online (Sandbox Code Playgroud)

但得到输出:

C
J
P
G
M
T
Run Code Online (Sandbox Code Playgroud)

我希望以上面所需输出的格式,但无法使其工作.也许使用prinfawkfor循环可能有效,但我没有成功.

谢谢你们.

小智 5

awk 'NR==FNR{if($1==5)a[NR];next}{for(i in a){printf $i" "}print ""}' a b
C G
J M
P T
Run Code Online (Sandbox Code Playgroud)