summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2020-04-12 20:33:50 +0300
committerArnold D. Robbins <arnold@skeeve.com>2020-04-12 20:33:50 +0300
commit3bf5a9b0c4e2e7f8d9ca37267e4f29775bb61129 (patch)
tree8125c145b5c54e7861ef30015accf31069386e74
parent96656f01af15915c943865c8705bc7fc4a9ab436 (diff)
downloadgawk-3bf5a9b0c4e2e7f8d9ca37267e4f29775bb61129.tar.gz
Add new sample files related to CSV parsing.
-rw-r--r--awklib/eg/misc/sample.csv5
-rw-r--r--awklib/eg/misc/test-csv.awk15
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 ""
+}