0

私の 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")
}
4

2 に答える 2

0

への変更 :

 for (j=1; j<=35; j++) { printf "%s",  $j }
于 2013-10-31T18:05:14.323 に答える