/usr/share/doc/gawk/examples/prog
NameSizeModeActions
alarm.awk23690644editdlrm
anagram.awk13580644editdlrm
awksed.awk5150644editdlrm
cut.awk36980644editdlrm
dupword.awk5070644editdlrm
egrep.awk19540644editdlrm
extract.awk18830644editdlrm
guide.awk1650644editdlrm
histsort.awk2830644editdlrm
id.awk12490644editdlrm
igawk.sh31890644editdlrm
indirectcall.awk19570644editdlrm
labels.awk10140644editdlrm
pi.awk3410644editdlrm
split.awk11980644editdlrm
tee.awk7700644editdlrm
testbits.awk7360644editdlrm
translate.awk11820644editdlrm
uniq.awk27000644editdlrm
wc.awk14800644editdlrm
wordfreq.awk3470644editdlrm
Edit: /usr/share/doc/gawk/examples/prog/split.awk (1198B)
# split.awk --- do split in awk # # Requires ord() and chr() library functions # # Arnold Robbins, arnold@skeeve.com, Public Domain # May 1993 # Revised slightly, May 2014 # usage: split [-count] [file] [outname] BEGIN { outfile = "x" # default count = 1000 if (ARGC > 4) usage() i = 1 if (i in ARGV && ARGV[i] ~ /^-[[:digit:]]+$/) { count = -ARGV[i] ARGV[i] = "" i++ } # test argv in case reading from stdin instead of file if (i in ARGV) i++ # skip datafile name if (i in ARGV) { outfile = ARGV[i] ARGV[i] = "" } s1 = s2 = "a" out = (outfile s1 s2) } { if (++tcount > count) { close(out) if (s2 == "z") { if (s1 == "z") { printf("split: %s is too large to split\n", FILENAME) > "/dev/stderr" exit 1 } s1 = chr(ord(s1) + 1) s2 = "a" } else s2 = chr(ord(s2) + 1) out = (outfile s1 s2) tcount = 1 } print > out } function usage() { print("usage: split [-num] [file] [outname]") > "/dev/stderr" exit 1 }