Bash Awk读取两个文件(第一个文件可能为空)

Bash Awk读取两个文件(第一个文件可能为空),bash,awk,Bash,Awk,我有以下脚本: awk ' # Write 1st file into array NR == FNR { array[NR] = $0; next; } # Process 2nd file { ... } ' file1 file2 我想要的是将第一个文件写入数组,然后在第二个文件中使用这个数组。第一个文件可能是空的,我的问题出现在awk读取空文件时,它不执行任何用户级awk程序代码并跳到第二个文件。当awk读取第二个文件时,NR==FNR为真,awk程序将第二个文

我有以下脚本:

awk '

# Write 1st file into array
NR == FNR {
    array[NR] = $0;
    next;
}

# Process 2nd file 
{
 ...
} ' file1 file2
我想要的是将第一个文件写入数组,然后在第二个文件中使用这个数组。第一个文件可能是空的,我的问题出现在awk读取空文件时,它不执行任何用户级awk程序代码并跳到第二个文件。当awk读取第二个文件时,NR==FNR为真,awk程序将第二个文件写入数组


如何避免它,以便只有第一个文件(如果存在)才会放入数组?

使用此条件来保护空文件场景:

ARGV[1]==FILENAME && FNR==NR {
   array[NR] = $0
   next
}

ARGV[1]将设置为awk命令行中的第一个文件名,文件名将表示正在处理的当前文件名。

使用此条件来保护空文件场景:

ARGV[1]==FILENAME && FNR==NR {
   array[NR] = $0
   next
}
ARGV[1]将设置为awk命令行中的第一个文件名,文件名将表示正在处理的当前文件名