解析されたCSV行で新しい文字列を設定するには?

解析されたCSV行で新しい文字列を設定するには?

私はbashシェルを使用しています。各行のトークンがカンマで区切られたCSVファイルがあります。 2番目と3番目の列を取得して新しい文字列(SQL文)を作成したいと思います。私はこれを達成するためにawkを使用できると考えてみました...

localhost:mydir davea$ awk -F ',' -v OFS=',' "REPLACE INTO my_table (ID, NAME, HOURS) VALUES ('$2', '$2', '$3');" types.csv
awk: syntax error at source line 1
 context is
    REPLACE INTO my_table >>>  (ID, <<<
awk: bailing out at source line 1

しかし、ご覧のようにエラーが発生します。何か抜けましたか? CSVファイルの各行に新しい文字列を設定するには?

ベストアンサー1

awk -F ',' '{
    printf("REPLACE INTO my_table (ID, NAME, HOURS) VALUES ('\''%s'\'', '\''%s'\'', '\''%s'\'');\n", $2, $2, $3) 
}' types.csv

おすすめ記事