Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我试图通过这个谜题来理解如何在 AWK 中读取许多输入文件“如何打印文件 1 中的第一列和文件 2 中的第二列?
输入
$ cat test1 1 4 2 5 3 6 $ cat test2 a b c d e f
目标
$ awk **ANSWER** 1 b 2 d 3 f
awk 'NR==FNR{a[NR]=$1;next} {print a[FNR], $2}' file1 file2
Ed 的解决方案很好,但由于awk通常存在于生态系统中,因此最好使用其他可用工具:
awk
paste test[12] | awk '{print $1, $4}'
这应该扩展到更大的文件,因为合理的实现paste不会test1在产生任何输出之前将所有内容读入内存。(这不太可能是一个实际问题,但在美学上是令人愉悦的。)
paste
test1