sffmny (Sat Oct 25 2014 01:31:01)

sffmny				- to read from stdin
or	sffmny filename			- to read from file filename
or	sffmny -s "nnnn" -c filename
or	sffmny -s "nnnn" -o newfile filename
or	cat rhubarb | cut 1-20 | sffmny -o /world/ruby -

If running manually, remember most shells need metas escaped and/or use the
single quote not dbl :
	sffmny -s '<split>' -x -f EN -o /fip/x/archive/\EN filename

Note that if -f is specified, a FipHdr of that name is added with the first bit
of text after the split OR the item seqno if there is none.

Simple program to read in a file and split it into several files.
The output file has a 4 digit extention.

Input switches :
	filename	input filename is always last (if needed)
			OR '-' to look for stdin.
	-o : output file path and queue			default: (infilename).9999 in current queue
		(see below)
	-s : splitter string to divide files		default: ^
	-m : optional string denoting a common HEAD part of data. default: none
	-M : optional string denoting a common TAIL part of data. default: none
	-n : return the number of files split		default: 0 on success
		in all cases, an error will produce a negative return code.
		note this is unusual behavior ! as most programs return just '0'
	-c : case insensitive				default: case sens
	-h : input file has a FipHdr on			default: no
	-H : Extra FipHdr information to add on 	default: no
	-i : ignore end of FIPHdr and merge with data	default: no
	-I : ignore end of FIPHdr and merge with data	default: no
		BUT make sure there is at least one new valid extra FipHdr
		field (that is NOT XX:) before creating the new file.
	-Z : For files with FipHdrs, add this FipHdr field with the Seqno
		eg : -Z SQ adds a FipHdr field 'SQ:0003' etc
	-C : split only on the 'n' count of the split string	default: every occurance
		ie -C 100 - split on the 100th time the end string is found
	-e : do not strip empty files			default: strip
	-E : minimum size of file			default: 1 byte
	-f : FipHdr field for the first non-space bit of data	default: none
	-x : strip the splitter string			default: leave in both files
	-y : splitter string is the end of the old file	default: leave in both files
	-Y : splitter string is start of the new file	default: leave in both files
	-z : force seqno number to start with this	default: 0
	-v : version and exit

For those switches with parameters, the parameter MUST be separated by a space.
Yes even on NT !

Other env varis can be used to define where the system is :
	SFF_HOME	where the home or top queue is.		default: /fip
			eg	setenv	SFF_HOME	/ripexpress/underware
	SFF_LOG		where the log files queue is		default: (SFF_HOME)/log
	SFF_SPOOL	where the data queues are		default: (SFF_HOME)/spool
	SFF_TMP		where the tmp data queues is		default: (SFF_HOME)/x
			THIS MUST BE ON THE SAME UNIX VOLUME as SFF_SPOOL queues.
			ie if spools are on /data99 which is hard disk /dev/sd0, you MUST also
			have the TMP queue on the same disk/partition

NOTE that for all BUT SFF_HOME, if the parameter starts with a '/' then it is a
hard, absolute path; if not then the spool area is under SFF_HOME.
	eg	setenv	SFF_SPOOL	/data7		will look under /data7 for queues
	while	setenv	SFF_SPOOL	data7		will look under /fip/data7

----------------------------------------------------------------------
Examples :

	sfffmt -c"n" < TFTDDMM.YY | awk -f awk.ftlink | sffmny

The default output is to use the basename of the input file and add $v.

But note that In a script it is normal that you might have to double the
backslashes.

Also in many scripts and CMD windows, chrs like dollars need also to be escaped
with a backslash EG

sffmny -s "ReloadedNeu" -o /fip/spool/xo/zz.\$v MyInputFile

#!/bin/sh

#
# Split PCS files for Blue
#

# sffmny
#	-x do not add the splitter sstring
#	-s splitter string
#	-o output path and name (plus Seqno stuffed on end)
#	$1 input file
# double backslash for a single PLUS another to escape the dollar
#
/fip/bin/sffmny -x -s "<URN=" -o
"/fip/spool/xchg/#CX:pcs2blue#CQ:2w5#SN:pcsraw\$u.\$v" $1

exit 0

Example using count - where the split is on the 'n'th occurance (800 in this
case) of the splitter string '*END'

/fip/bin/sffmny -s '*END' -o '/a1/hoho/split.800.$v' -C 800
/aa/siftsplit/2008tabloid

Version Control
;004j	30sep99 added -I and -i and -H and -Z
	;a/b/c 24jul00 minor mods
	;d 25jul02 made outname parseable
	;e/f 02aug02 add -m -M and -n (might have broken -I ??)
	;g-h 12nov02 empty files are now that plus added -E !
	;i 26may08  added -f
	;j 26apr09 added -C, -y, -Y and bugette-missing 1 chr on 64k boundary

(copyright) 2014 and previous years FingerPost Ltd.