多个awk在同一行打印
Multiple awk to print in the same line
我有 5 个文件
a.txt
b.txt
c.txt
d.txt
e.txt
使用的模式
awk 'NR==21 {print }' a.txt; awk 'NR==21 {print }' b.txt; awk 'NR==21 {print }' c.txt; awk 'NR==21 {print }' d.txt; awk 'NR==21 {print }' e.txt;
输出
a
b
c
d
e
但我需要它
a b c d e
有人可以帮我吗?
试试这个
awk 'NR==21 {print }' a.txt; awk 'NR==21 {print }' b.txt; awk 'NR==21 {print }' c.txt; awk 'NR==21 {print }' d.txt; awk 'NR==21 {print }' e.txt; |tr '\n' ' '
只需添加一个tr
命令
tr '\n' ' '
您不需要多个 awk。您实际上可以将它们组合在一个 awk 中:
awk FNR==21 {if (NR>FNR) printf OFS; printf }' {a,b,c,d,e}.txt
a b c d e
FNR==21
将 运行 这个块用于每个输入文件中的第 21 行
NR>FNR
将为第二个文件打印 space
管道通过 xargs
awk 'NR==21 {print }' a.txt; awk 'NR==21 {print }' b.txt; awk 'NR==21 {print }' c.txt; awk 'NR==21 {print }' d.txt; awk 'NR==21 {print }' e.txt | xargs
我有 5 个文件
a.txt
b.txt
c.txt
d.txt
e.txt
使用的模式
awk 'NR==21 {print }' a.txt; awk 'NR==21 {print }' b.txt; awk 'NR==21 {print }' c.txt; awk 'NR==21 {print }' d.txt; awk 'NR==21 {print }' e.txt;
输出
a
b
c
d
e
但我需要它
a b c d e
有人可以帮我吗?
试试这个
awk 'NR==21 {print }' a.txt; awk 'NR==21 {print }' b.txt; awk 'NR==21 {print }' c.txt; awk 'NR==21 {print }' d.txt; awk 'NR==21 {print }' e.txt; |tr '\n' ' '
只需添加一个tr
命令
tr '\n' ' '
您不需要多个 awk。您实际上可以将它们组合在一个 awk 中:
awk FNR==21 {if (NR>FNR) printf OFS; printf }' {a,b,c,d,e}.txt
a b c d e
FNR==21
将 运行 这个块用于每个输入文件中的第 21 行NR>FNR
将为第二个文件打印 space
管道通过 xargs
awk 'NR==21 {print }' a.txt; awk 'NR==21 {print }' b.txt; awk 'NR==21 {print }' c.txt; awk 'NR==21 {print }' d.txt; awk 'NR==21 {print }' e.txt | xargs