2015-01-09 3 views
3

У меня есть 5 файловMultiple AWK для печати в той же строке

a.txt 
b.txt 
c.txt 
d.txt 
e.txt 

шаблон используется

awk 'NR==21 {print $1}' a.txt; awk 'NR==21 {print $1}' b.txt; awk 'NR==21 {print $1}' c.txt; awk 'NR==21 {print $1}' d.txt; awk 'NR==21 {print $1}' e.txt; 

Выход

a 
b 
c 
d 
e 

Но мне это нужно, чтобы быть

a b c d e 

Может кто-нибудь, пожалуйста, помогите мне?

ответ

2

Вам не нужно несколько AWK. Вы действительно можете объединить их в одном AWK:

awk FNR==21 {if (NR>FNR) printf OFS; printf $1}' {a,b,c,d,e}.txt 
a b c d e 
  • FNR==21 будет работать этот блок для строки # 21 в каждом входном файле
  • NR>FNR напечатает пространство для 2-го файла, начиная
1

Попробуйте

awk 'NR==21 {print $1}' a.txt; awk 'NR==21 {print $1}' b.txt; awk 'NR==21 {print $1}' c.txt; awk 'NR==21 {print $1}' d.txt; awk 'NR==21 {print $1}' e.txt; |tr '\n' ' ' 

Просто добавьте tr команду

tr '\n' ' ' 
Смежные вопросы