Fixed csv output (#106) (#107)

csv output processed by Writer from encoder/csv
diff --git a/cmd/output.go b/cmd/output.go
index b697da9..2593ca4 100644
--- a/cmd/output.go
+++ b/cmd/output.go
@@ -19,6 +19,7 @@
 
 import (
 	"encoding/json"
+	"encoding/csv"
 	"fmt"
 	"os"
 	"reflect"
@@ -168,6 +169,7 @@
 
 func printCsv(response map[string]interface{}, filter []string) {
 	format := "csv"
+	enc := csv.NewWriter(os.Stdout)
 	for _, v := range response {
 		valueType := reflect.TypeOf(v)
 		if valueType.Kind() == reflect.Slice || valueType.Kind() == reflect.Map {
@@ -191,16 +193,17 @@
 						}
 						sort.Strings(header)
 					}
-					fmt.Println(strings.Join(header, ","))
+					enc.Write(header)
 				}
 				var values []string
 				for _, key := range header {
 					values = append(values, jsonify(row[key], format))
 				}
-				fmt.Println(strings.Join(values, ","))
+				enc.Write(values)
 			}
 		}
 	}
+	enc.Flush()
 }
 
 func filterResponse(response map[string]interface{}, filter []string, outputType string) map[string]interface{} {