$ awk 'NR==FNR{a[NR]=$0; next} {print (FNR%2 ? $0 : a[FNR])}' file1 file2
>name.A
GGG
>name.B
AAA
>name.C
TTT
>name.D
CCC
>name.E
CAT
Помимо того, что это более лаконично (и работает :-)), приведенный выше подход более эффективен, чем ваш подход, потому что:
1
)для каждой строки перед тем, как решить, печатать или нет. Также -не используйте перенаправление ввода для открытия файлов для awk, так как оно не работает для нескольких файлов (, как вы выяснили ), и лишает вас возможности проверить ИМЯ ФАЙЛА.