diff options
Diffstat (limited to 'awklib/eg')
-rw-r--r-- | awklib/eg/misc/sample.csv | 5 | ||||
-rw-r--r-- | awklib/eg/misc/test-csv.awk | 15 |
2 files changed, 20 insertions, 0 deletions
diff --git a/awklib/eg/misc/sample.csv b/awklib/eg/misc/sample.csv new file mode 100644 index 00000000..12a4f711 --- /dev/null +++ b/awklib/eg/misc/sample.csv @@ -0,0 +1,5 @@ +p,"q,r",s +p,"q""r",s +p,"q,""r",s +p,"",s +p,,s diff --git a/awklib/eg/misc/test-csv.awk b/awklib/eg/misc/test-csv.awk new file mode 100644 index 00000000..7dbf414c --- /dev/null +++ b/awklib/eg/misc/test-csv.awk @@ -0,0 +1,15 @@ +BEGIN { + fp[0] = "([^,]+)|(\"[^\"]+\")" + fp[1] = "([^,]*)|(\"[^\"]+\")" + fp[2] = "([^,]*)|(\"([^\"]|\"\")+\")" + FPAT = fp[fpat+0] +} + +{ + print "<" $0 ">" + printf("NF = %s ", NF) + for (i = 1; i <= NF; i++) { + printf("<%s>", $i) + } + print "" +} |