summaryrefslogtreecommitdiff
path: root/awklib/eg/prog/tee.awk
diff options
context:
space:
mode:
Diffstat (limited to 'awklib/eg/prog/tee.awk')
-rw-r--r--awklib/eg/prog/tee.awk38
1 files changed, 38 insertions, 0 deletions
diff --git a/awklib/eg/prog/tee.awk b/awklib/eg/prog/tee.awk
new file mode 100644
index 00000000..895e4398
--- /dev/null
+++ b/awklib/eg/prog/tee.awk
@@ -0,0 +1,38 @@
+# tee.awk --- tee in awk
+# Arnold Robbins, arnold@gnu.ai.mit.edu, Public Domain
+# May 1993
+# Revised December 1995
+
+BEGIN \
+{
+ for (i = 1; i < ARGC; i++)
+ copy[i] = ARGV[i]
+
+ if (ARGV[1] == "-a") {
+ append = 1
+ delete ARGV[1]
+ delete copy[1]
+ ARGC--
+ }
+ if (ARGC < 2) {
+ print "usage: tee [-a] file ..." > "/dev/stderr"
+ exit 1
+ }
+ ARGV[1] = "-"
+ ARGC = 2
+}
+{
+ # moving the if outside the loop makes it run faster
+ if (append)
+ for (i in copy)
+ print >> copy[i]
+ else
+ for (i in copy)
+ print > copy[i]
+ print
+}
+END \
+{
+ for (i in copy)
+ close(copy[i])
+}