我的 CSV 文件有 47 列,我想通过某个字段的值选择第 36 - 47 列。从第 36 到 47 列开始,每个条目是这样的:“1/1:0,297: 297 :99:10476,951,0”
我使用下面的 AWK 代码用“:”分割这个条目,并检查 array[3] >= 20(上面突出显示的是 array[3] 中的 297。如果它通过检查,则将条目打印到新的CSV,否则打印出“./.”。我需要无条件打印出前 35 列。
当我在名为 awk_byDP (chmod u+x) 的文件中运行以下代码时,它给了我这个错误:
/usr/bin/awk: 源代码第 6 行源文件中的语法错误 ./awk_byDP 上下文是
? <<< /usr/bin/awk: 源代码第 6 行源文件 ./awk_byDP 处的非法语句
#!/usr/bin/awk -f
BEGIN {-F","; OFS=","}
 NR <= 1 {next}
 NR > 1 {
     for (j=1; j<=35; j++) { printf("%s",  $j) } #line 6  
     for (i=36; i<=47; i++) {
     t=$i;
     split(t,a,":")
     if ( a[3]>=20 ) {
            printf(“%s”, $i)
       }  
       else {
          printf(“%s”, "./.")
       }
     }
    printf("\n")
}