在使用类似于FNR==NR方法处理两个文件时,可以使用$ARGIND变量来判断处理的是第几个文件。对于三个及以上的文件,由于输入文件的数量可能不确定,因此需要使用循环来处理。以下是一个实现此功能的示例代码:
awk '{a[$1] = (a[$1] ? a[$1] FS : "") $2} END {for (i in a) print i,a[i]}' file1 file2 file3
在此示例中,awk命令将三个文件(file1,file2和file3)拼接起来,并使用空格作为分隔符打印所有唯一的第一列。
其中,a[$1] = (a[$1] ? a[$1] FS : "") $2表示如果a[$1]存在,则在其后加上FS和$2,否则设置为$2。
最后,for循环遍历数组a,打印第一列和对应的值。