aboutsummaryrefslogtreecommitdiffstats
path: root/awklib/eg
diff options
context:
space:
mode:
Diffstat (limited to 'awklib/eg')
-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 ""
+}