我有5个文件
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
有人可以帮帮我吗?
答案 0 :(得分: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
将为第二个文件打印空格答案 1 :(得分: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' ' '
答案 2 :(得分:0)
通过xargs
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 | xargs