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