linux - 多个awk在同一行打印

标签 linux bash shell scripting

我有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

有人可以帮帮我吗?

最佳答案

您不需要多个 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 行运行此 block
  • NR>FNR 将为第二个文件打印一个空格

关于linux - 多个awk在同一行打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27854980/

相关文章:

linux - 从Docker容器访问网络驱动器

php - Bash:递归查找php文件,用php预处理,捕获输出到html文件

php - 无法安装 php-process 扩展

linux - 在没有服务器调用 'connect' 的情况下,套接字上的 'accept' 调用能否成功返回?

bash - 如何将变量传递给awk命令行

mysql - 表热图中的 0-1-2 矩阵

shell - 如何更改 shell/bash 中的列名?

bash - 填充/填充 CSV 文件中缺失的列(使用制表符)

bash - 我应该避免在我的 shell 脚本中使用 bash -c、sh -c 和其他 shell 的等效项吗?

c++ - 获取/dev/video0的硬件信息