aboutsummaryrefslogtreecommitdiff
path: root/testdir/T.split
blob: 1c9a58d81ecd2870cf304dab6f3c75f5fcfdb40a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
echo T.split: misc tests of field splitting and split command

awk=${awk-../a.out}

echo a:bc:def >foo0
echo a:bc:def >foo1
$awk '{ FS = ":"; print $1 }' foo0 >foo2
diff foo1 foo2 || echo 'BAD: T.split 0.1'

echo a:bc:def >foo0
echo 1 >foo1
$awk '{ FS = ":"; print NF }' foo0 >foo2
diff foo1 foo2 || echo 'BAD: T.split 0.2'

echo '
a
a:b
c:d:e
e:f:g:h' >foo0
$awk 'BEGIN {
	FS = ":"
	while (getline <"foo0" > 0) 
		print NF
}' >foo1
echo '0
1
2
3
4' >foo2
diff foo1 foo2 || echo 'BAD: T.split 0.3'

echo 'abc
de
f

     ' >foo0
who | sed 10q  >> foo0
sed 10q /etc/passwd >> foo0

$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
}' foo0 >foo1

diff foo0 foo1 || echo 'BAD: T.split 1'

# assumes same foo0!  bad design


$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
}' foo0 >foo1

diff foo0 foo1 || echo 'BAD: T.split //'

$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
}' foo0 >foo2

diff foo0 foo2 || echo 'BAD: T.split 2'

# assumes same foo0!

$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
}' foo0 >foo3

diff foo0 foo3 || echo 'BAD: T.split 3'


$awk '
{ n = split( $0, temp, /^@@@ +/ )
  print n
}' >foo1 <<XXX
@@@ xxx
@@@ xxx
@@@ xxx
XXX
echo '2
2
2' >foo2
diff foo1 foo2 || echo 'BAD: T.split 4'

rm foo*

echo '
a
bc
def' >foo0
$awk '
{ print split($0, x, "")
}' foo0 >foo1
echo '0
1
2
3' >foo2
diff foo1 foo2 || echo 'BAD: T.split null 3rd arg'

rm foo*
$awk 'BEGIN {
  a[1]="a b"
  print split(a[1],a),a[1],a[2]
}' >foo1

echo '2 a b' >foo2
diff foo1 foo2 || echo 'BAD: T.split(a[1],a)'