我尝试了解如何使用此拼图阅读AWK中的许多输入文件“如何从文件1中打印第1列和从文件2打印第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
答案 0 :(得分:3)
awk 'NR==FNR{a[NR]=$1;next} {print a[FNR], $2}' file1 file2
答案 1 :(得分:3)
Ed的解决方案很好,但由于awk
通常存在于生态系统中,因此最好使用其他可用工具:
paste test[12] | awk '{print $1, $4}'
这应该扩展到更大的文件,因为paste
的合理实现在生成任何输出之前不会将所有test1
读入内存。 (这不太可能是一个实际问题,但在审美上是令人愉悦的。)