I have 5 files
a.txt
b.txt
c.txt
d.txt
e.txt
Pattern used
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;
Output
a
b
c
d
e
But I need it to be
a b c d e
Can someone please help me?
You don't need multiple awk. You can actually combine them in single awk:
awk FNR==21 {if (NR>FNR) printf OFS; printf $1}' {a,b,c,d,e}.txt
a b c d e
FNR==21 will run this block for line #21 in each input fileNR>FNR will print a space for 2nd file onwardsTry this
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' ' '
Just add an tr command
tr '\n' ' '
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With