137 lines · 2.2 KB · Text
RawDownload
#!/bin/rcecho T.split: misc tests of field splitting and split command >[1=2] TEMP0=foo0TEMP1=foo1TEMP2=foo2 $awk 'BEGIN {	# FS changes after getline.	FS = ":"	"echo a:bc:def" | getline	FS = "-"	print FS, $1, NF}' > $TEMP1echo '- a 3' > $TEMP2diff $TEMP1 $TEMP2 || echo 'BAD: T.split: 0.2' >[1=2] echo 'aa:bc:d:ee:f:g:h' > $TEMP0$awk 'BEGIN {	FS = ":"	while (getline <"'^$TEMP0^'" > 0) 		print NF}' > $TEMP1echo '01234' > $TEMP2diff $TEMP1 $TEMP2 || echo 'BAD: T.split: 0.3' >[1=2] # getline var shouldn't impact fields. sed 1000q /lib/ucd/UnicodeData.txt >foo.txt echo 'abcdef      ' > $TEMP0who | sed 10q  >> $TEMP0sed 10q foo.txt >> $TEMP0 $awk '{	n = split($0, x, "")	m = length($0)	if (m != n) print "error 1", NR	s = ""	for (i = 1; i <= m; i++)		s = s x[i]	if (s != $0) print "error 2", NR	print s}' $TEMP0 > $TEMP1 diff $TEMP0 $TEMP1 || echo 'BAD: T.split: 1' >[1=2] # assumes same test.temp.0!  bad design  $awk 'BEGIN { FS = "" }{	n = split($0, x)	# will be split with FS	m = length($0)	if (m != n) print "error 1", NR	s = ""	for (i = 1; i <= m; i++)		s = s x[i]	if (s != $0) print "error 2", NR	print s}' $TEMP0 > $TEMP2 diff $TEMP0 $TEMP2 || echo 'BAD: T.split: 2' >[1=2] # assumes same test.temp.0! $awk 'BEGIN { FS = "" }{	n = NF	m = length($0)	if (m != n) print "error 1", NR	s = ""	for (i = 1; i <= m; i++)		s = s $i	if (s != $0) print "error 2", NR	print s}' $TEMP0 > $TEMP2 diff $TEMP0 $TEMP2 || echo 'BAD: T.split: 3' >[1=2]  $awk '{ n = split( $0, temp, /^@@@ +/ )  print n}' > $TEMP1 <<XXX@@@ xxx@@@ xxx@@@ xxxXXXecho '222' > $TEMP2diff $TEMP1 $TEMP2 || echo 'BAD: T.split: 4' >[1=2] rm -f $TEMP1 $TEMP2 $TEMP3 echo 'abcdef' > $TEMP0$awk '{ print split($0, x, "")}' $TEMP0 > $TEMP1echo '0123' > $TEMP2diff $TEMP1 $TEMP2 || echo 'BAD: T.split: null 3rd arg' >[1=2] rm -f $TEMP1 $TEMP2 $TEMP3$awk 'BEGIN {  a[1]="a b"  print split(a[1],a),a[1],a[2]}' > $TEMP1 echo '2 a b' > $TEMP2diff $TEMP1 $TEMP2 || echo 'BAD: T.split: a[1],a' >[1=2] $awk 'BEGIN {  a = "cat\n\n\ndog"  split(a, b, "[\r\n]+")  print b[1], b[2]}' > $TEMP1echo 'cat dog' > $TEMP2diff $TEMP1 $TEMP2 || echo 'BAD: T.split: a, b, "[\r\n]+"' >[1=2]