Awk:检查值是否不在数组中

Awk:检查值是否不在数组中,awk,Awk,我试图通过awk读取两个单独的文件,并将第二个文件解析为输出文件 文件1包含以下数字: 1 2 5 7 10 文件2包含一个标题(字段数这一行程序应该满足您的要求: awk 'NR==FNR{a[$0];next}NF<3||!($22 in a)' file1 file2 awk'NR==FNR{a[$0];next}nf非常感谢!我忘记了默认情况下,awk检查数组中是否存在特定索引,而不是搜索值。 #!/bin/bash FieldNum=22 awk -v f=$Fi

我试图通过awk读取两个单独的文件,并将第二个文件解析为输出文件

文件1包含以下数字:

1
2
5
7
10

文件2包含一个标题(字段数这一行程序应该满足您的要求:

 awk 'NR==FNR{a[$0];next}NF<3||!($22 in a)' file1 file2

awk'NR==FNR{a[$0];next}nf非常感谢!我忘记了默认情况下,awk检查数组中是否存在特定索引,而不是搜索值。
#!/bin/bash    
FieldNum=22

awk -v f=$FieldNum 'FNR==NR{num[$1]; next}
    {
        # print the header of file2
        if(NF < 3) {print > "output"}
        # check lines after header  
        else {if (f in num) {} else {print >> "output"}}
    }' $file1 $file2 
 awk 'NR==FNR{a[$0];next}NF<3||!($22 in a)' file1 file2