2015-10-19 2 views
2

Я хотел бы соответствовать номеру записи в одном файле будет тот же номер поля в другом файле:соответствующие строки и поля из двух файлов

file1:

1 
3 
5 
4 
3 
1 
5 

file2:

A B C D E F G 
H I J J K L M 
N O P Q R S T 

Я хотел бы использовать номера записей, соответствующие 5, в первом файле, чтобы получить соответствующие поля во втором файле. Желаемый результат:

C G 
J M 
P T 

До сих пор я сделал:

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

Но получить выход:

C 
J 
P 
G 
M 
T 

Я хотел бы иметь это в формате желаемых результатов выше, но не может заставить его работать. Возможно, использование prinf или awk для цикла может работать, но я не имел успеха.

Спасибо всем.

ответ

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 
Смежные вопросы