从数据文件-part2中删除选定的行

时间:2011-09-08 10:59:11

标签: awk

这是先前的讨论:(deleting selected lines from data file

我试过遵循Fredirk和Glenn Jackman提出的想法,如果这对数字与特定的creteria相匹配,我会出现如下代码,只打印行。

当我执行代码时,有输出但它打印所有行而不是特定的行。

 #!/usr/bin/awk -f

 BEGIN  {
   i=0
   for (n=1; n<=8; n++) set[i++] = n;
   for (n=57; n<=64; n++) set[i++] = n;
   for (n=9; n<=49; n+=8) {set[i++] = n; set[i++] = n+7};
    }


 /^|/{
     split($3, res1, "@"); split($6, res2, "@"); #print res1[1], res2[1]

     if ( (res1[1] in set) == (res2[1] in set) ); 

     {
       print;
       next;

     }

 }

如果有错误,有人可以帮忙找到任何错误吗?我可以弄清楚它为什么没有得到。 谢谢。

1 个答案:

答案 0 :(得分:1)

if命令后有一个分散的分号。如果条件为真,则不执行任何操作。然后你打印每一行。