/ Hex Artifact Content
Login

Artifact 891e89c4c2d16e629cd45951d4ed899ad12afc09:


0000: 23 21 2f 62 69 6e 2f 73 68 0a 23 0a 23 20 54 68  #!/bin/sh.#.# Th
0010: 69 73 20 73 63 72 69 70 74 20 72 75 6e 73 20 74  is script runs t
0020: 68 65 20 77 6f 72 64 63 6f 75 6e 74 20 70 72 6f  he wordcount pro
0030: 67 72 61 6d 20 69 6e 20 64 69 66 66 65 72 65 6e  gram in differen
0040: 74 20 77 61 79 73 2c 20 63 6f 6d 70 61 72 69 6e  t ways, comparin
0050: 67 0a 23 20 74 68 65 20 6f 75 74 70 75 74 20 66  g.# the output f
0060: 72 6f 6d 20 65 61 63 68 2e 0a 23 0a 0a 23 20 53  rom each..#..# S
0070: 65 6c 65 63 74 20 74 68 65 20 73 6f 75 72 63 65  elect the source
0080: 20 74 65 78 74 20 74 6f 20 62 65 20 61 6e 61 6c   text to be anal
0090: 79 7a 65 64 2e 0a 23 0a 69 66 20 74 65 73 74 20  yzed..#.if test 
00a0: 22 78 24 31 22 20 3d 20 22 78 22 3b 0a 74 68 65  "x$1" = "x";.the
00b0: 6e 20 65 63 68 6f 20 22 55 73 61 67 65 3a 20 24  n echo "Usage: $
00c0: 30 20 46 49 4c 45 4e 41 4d 45 20 5b 41 52 47 53  0 FILENAME [ARGS
00d0: 2e 2e 2e 5d 22 3b 20 65 78 69 74 20 31 3b 0a 66  ...]"; exit 1;.f
00e0: 69 0a 0a 23 20 44 6f 20 74 65 73 74 20 72 75 6e  i..# Do test run
00f0: 73 0a 23 0a 72 6d 20 2d 66 20 77 63 64 62 31 2e  s.#.rm -f wcdb1.
0100: 64 62 0a 2e 2f 77 6f 72 64 63 6f 75 6e 74 20 2d  db../wordcount -
0110: 2d 74 69 6d 65 72 20 2d 2d 73 75 6d 6d 61 72 79  -timer --summary
0120: 20 77 63 64 62 31 2e 64 62 20 24 2a 20 2d 2d 69   wcdb1.db $* --i
0130: 6e 73 65 72 74 20 3e 77 63 2d 6f 75 74 2e 74 78  nsert >wc-out.tx
0140: 74 0a 6d 76 20 77 63 2d 6f 75 74 2e 74 78 74 20  t.mv wc-out.txt 
0150: 77 63 2d 62 61 73 65 6c 69 6e 65 2e 74 78 74 0a  wc-baseline.txt.
0160: 72 6d 20 2d 66 20 77 63 64 62 32 2e 64 62 0a 2e  rm -f wcdb2.db..
0170: 2f 77 6f 72 64 63 6f 75 6e 74 20 2d 2d 74 69 6d  /wordcount --tim
0180: 65 72 20 2d 2d 73 75 6d 6d 61 72 79 20 77 63 64  er --summary wcd
0190: 62 32 2e 64 62 20 24 2a 20 2d 2d 69 6e 73 65 72  b2.db $* --inser
01a0: 74 20 2d 2d 77 69 74 68 6f 75 74 2d 72 6f 77 69  t --without-rowi
01b0: 64 20 3e 77 63 2d 6f 75 74 2e 74 78 74 0a 20 20  d >wc-out.txt.  
01c0: 69 66 20 63 6d 70 20 2d 73 20 77 63 2d 6f 75 74  if cmp -s wc-out
01d0: 2e 74 78 74 20 77 63 2d 62 61 73 65 6c 69 6e 65  .txt wc-baseline
01e0: 2e 74 78 74 3b 0a 20 20 74 68 65 6e 20 65 63 68  .txt;.  then ech
01f0: 6f 20 68 69 20 3e 2f 64 65 76 2f 6e 75 6c 6c 3b  o hi >/dev/null;
0200: 0a 20 20 65 6c 73 65 20 65 63 68 6f 20 45 52 52  .  else echo ERR
0210: 4f 52 3a 3b 0a 20 20 20 20 20 20 20 64 69 66 66  OR:;.       diff
0220: 20 2d 75 20 77 63 2d 62 61 73 65 6c 69 6e 65 2e   -u wc-baseline.
0230: 74 78 74 20 77 63 2d 6f 75 74 2e 74 78 74 3b 0a  txt wc-out.txt;.
0240: 20 20 66 69 0a 0a 72 6d 20 2d 66 20 77 63 64 62    fi..rm -f wcdb
0250: 31 2e 64 62 0a 2e 2f 77 6f 72 64 63 6f 75 6e 74  1.db../wordcount
0260: 20 2d 2d 74 69 6d 65 72 20 2d 2d 73 75 6d 6d 61   --timer --summa
0270: 72 79 20 77 63 64 62 31 2e 64 62 20 24 2a 20 2d  ry wcdb1.db $* -
0280: 2d 72 65 70 6c 61 63 65 20 3e 77 63 2d 6f 75 74  -replace >wc-out
0290: 2e 74 78 74 0a 20 20 69 66 20 63 6d 70 20 2d 73  .txt.  if cmp -s
02a0: 20 77 63 2d 6f 75 74 2e 74 78 74 20 77 63 2d 62   wc-out.txt wc-b
02b0: 61 73 65 6c 69 6e 65 2e 74 78 74 3b 0a 20 20 74  aseline.txt;.  t
02c0: 68 65 6e 20 65 63 68 6f 20 68 69 20 3e 2f 64 65  hen echo hi >/de
02d0: 76 2f 6e 75 6c 6c 3b 0a 20 20 65 6c 73 65 20 65  v/null;.  else e
02e0: 63 68 6f 20 45 52 52 4f 52 3a 3b 0a 20 20 20 20  cho ERROR:;.    
02f0: 20 20 20 64 69 66 66 20 2d 75 20 77 63 2d 62 61     diff -u wc-ba
0300: 73 65 6c 69 6e 65 2e 74 78 74 20 77 63 2d 6f 75  seline.txt wc-ou
0310: 74 2e 74 78 74 3b 0a 20 20 66 69 0a 72 6d 20 2d  t.txt;.  fi.rm -
0320: 66 20 77 63 64 62 32 2e 64 62 0a 2e 2f 77 6f 72  f wcdb2.db../wor
0330: 64 63 6f 75 6e 74 20 2d 2d 74 69 6d 65 72 20 2d  dcount --timer -
0340: 2d 73 75 6d 6d 61 72 79 20 77 63 64 62 32 2e 64  -summary wcdb2.d
0350: 62 20 24 2a 20 2d 2d 72 65 70 6c 61 63 65 20 2d  b $* --replace -
0360: 2d 77 69 74 68 6f 75 74 2d 72 6f 77 69 64 20 3e  -without-rowid >
0370: 77 63 2d 6f 75 74 2e 74 78 74 0a 20 20 69 66 20  wc-out.txt.  if 
0380: 63 6d 70 20 2d 73 20 77 63 2d 6f 75 74 2e 74 78  cmp -s wc-out.tx
0390: 74 20 77 63 2d 62 61 73 65 6c 69 6e 65 2e 74 78  t wc-baseline.tx
03a0: 74 3b 0a 20 20 74 68 65 6e 20 65 63 68 6f 20 68  t;.  then echo h
03b0: 69 20 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 0a 20 20  i >/dev/null;.  
03c0: 65 6c 73 65 20 65 63 68 6f 20 45 52 52 4f 52 3a  else echo ERROR:
03d0: 3b 0a 20 20 20 20 20 20 20 64 69 66 66 20 2d 75  ;.       diff -u
03e0: 20 77 63 2d 62 61 73 65 6c 69 6e 65 2e 74 78 74   wc-baseline.txt
03f0: 20 77 63 2d 6f 75 74 2e 74 78 74 3b 0a 20 20 66   wc-out.txt;.  f
0400: 69 0a 0a 72 6d 20 2d 66 20 77 63 64 62 31 2e 64  i..rm -f wcdb1.d
0410: 62 0a 2e 2f 77 6f 72 64 63 6f 75 6e 74 20 2d 2d  b../wordcount --
0420: 74 69 6d 65 72 20 2d 2d 73 75 6d 6d 61 72 79 20  timer --summary 
0430: 77 63 64 62 31 2e 64 62 20 24 2a 20 2d 2d 73 65  wcdb1.db $* --se
0440: 6c 65 63 74 20 3e 77 63 2d 6f 75 74 2e 74 78 74  lect >wc-out.txt
0450: 0a 20 20 69 66 20 63 6d 70 20 2d 73 20 77 63 2d  .  if cmp -s wc-
0460: 6f 75 74 2e 74 78 74 20 77 63 2d 62 61 73 65 6c  out.txt wc-basel
0470: 69 6e 65 2e 74 78 74 3b 0a 20 20 74 68 65 6e 20  ine.txt;.  then 
0480: 65 63 68 6f 20 68 69 20 3e 2f 64 65 76 2f 6e 75  echo hi >/dev/nu
0490: 6c 6c 3b 0a 20 20 65 6c 73 65 20 65 63 68 6f 20  ll;.  else echo 
04a0: 45 52 52 4f 52 3a 3b 0a 20 20 20 20 20 20 20 64  ERROR:;.       d
04b0: 69 66 66 20 2d 75 20 77 63 2d 62 61 73 65 6c 69  iff -u wc-baseli
04c0: 6e 65 2e 74 78 74 20 77 63 2d 6f 75 74 2e 74 78  ne.txt wc-out.tx
04d0: 74 3b 0a 20 20 66 69 0a 0a 72 6d 20 2d 66 20 77  t;.  fi..rm -f w
04e0: 63 64 62 32 2e 64 62 0a 2e 2f 77 6f 72 64 63 6f  cdb2.db../wordco
04f0: 75 6e 74 20 2d 2d 74 69 6d 65 72 20 2d 2d 73 75  unt --timer --su
0500: 6d 6d 61 72 79 20 77 63 64 62 32 2e 64 62 20 24  mmary wcdb2.db $
0510: 2a 20 2d 2d 73 65 6c 65 63 74 20 2d 2d 77 69 74  * --select --wit
0520: 68 6f 75 74 2d 72 6f 77 69 64 20 3e 77 63 2d 6f  hout-rowid >wc-o
0530: 75 74 2e 74 78 74 0a 20 20 69 66 20 63 6d 70 20  ut.txt.  if cmp 
0540: 2d 73 20 77 63 2d 6f 75 74 2e 74 78 74 20 77 63  -s wc-out.txt wc
0550: 2d 62 61 73 65 6c 69 6e 65 2e 74 78 74 3b 0a 20  -baseline.txt;. 
0560: 20 74 68 65 6e 20 65 63 68 6f 20 68 69 20 3e 2f   then echo hi >/
0570: 64 65 76 2f 6e 75 6c 6c 3b 0a 20 20 65 6c 73 65  dev/null;.  else
0580: 20 65 63 68 6f 20 45 52 52 4f 52 3a 3b 0a 20 20   echo ERROR:;.  
0590: 20 20 20 20 20 64 69 66 66 20 2d 75 20 77 63 2d       diff -u wc-
05a0: 62 61 73 65 6c 69 6e 65 2e 74 78 74 20 77 63 2d  baseline.txt wc-
05b0: 6f 75 74 2e 74 78 74 3b 0a 20 20 66 69 0a 0a 2e  out.txt;.  fi...
05c0: 2f 77 6f 72 64 63 6f 75 6e 74 20 2d 2d 74 69 6d  /wordcount --tim
05d0: 65 72 20 2d 2d 73 75 6d 6d 61 72 79 20 77 63 64  er --summary wcd
05e0: 62 31 2e 64 62 20 24 2a 20 2d 2d 71 75 65 72 79  b1.db $* --query
05f0: 20 3e 77 63 2d 6f 75 74 2e 74 78 74 0a 6d 76 20   >wc-out.txt.mv 
0600: 77 63 2d 6f 75 74 2e 74 78 74 20 77 63 2d 62 61  wc-out.txt wc-ba
0610: 73 65 6c 69 6e 65 2e 74 78 74 0a 2e 2f 77 6f 72  seline.txt../wor
0620: 64 63 6f 75 6e 74 20 2d 2d 74 69 6d 65 72 20 2d  dcount --timer -
0630: 2d 73 75 6d 6d 61 72 79 20 77 63 64 62 32 2e 64  -summary wcdb2.d
0640: 62 20 24 2a 20 2d 2d 71 75 65 72 79 20 2d 2d 77  b $* --query --w
0650: 69 74 68 6f 75 74 2d 72 6f 77 69 64 20 3e 77 63  ithout-rowid >wc
0660: 2d 6f 75 74 2e 74 78 74 0a 20 20 69 66 20 63 6d  -out.txt.  if cm
0670: 70 20 2d 73 20 77 63 2d 6f 75 74 2e 74 78 74 20  p -s wc-out.txt 
0680: 77 63 2d 62 61 73 65 6c 69 6e 65 2e 74 78 74 3b  wc-baseline.txt;
0690: 0a 20 20 74 68 65 6e 20 65 63 68 6f 20 68 69 20  .  then echo hi 
06a0: 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 0a 20 20 65 6c  >/dev/null;.  el
06b0: 73 65 20 65 63 68 6f 20 45 52 52 4f 52 3a 3b 0a  se echo ERROR:;.
06c0: 20 20 20 20 20 20 20 64 69 66 66 20 2d 75 20 77         diff -u w
06d0: 63 2d 62 61 73 65 6c 69 6e 65 2e 74 78 74 20 77  c-baseline.txt w
06e0: 63 2d 6f 75 74 2e 74 78 74 3b 0a 20 20 66 69 0a  c-out.txt;.  fi.
06f0: 0a 2e 2f 77 6f 72 64 63 6f 75 6e 74 20 2d 2d 74  ../wordcount --t
0700: 69 6d 65 72 20 2d 2d 73 75 6d 6d 61 72 79 20 77  imer --summary w
0710: 63 64 62 31 2e 64 62 20 24 2a 20 2d 2d 64 65 6c  cdb1.db $* --del
0720: 65 74 65 20 3e 77 63 2d 6f 75 74 2e 74 78 74 0a  ete >wc-out.txt.
0730: 6d 76 20 77 63 2d 6f 75 74 2e 74 78 74 20 77 63  mv wc-out.txt wc
0740: 2d 62 61 73 65 6c 69 6e 65 2e 74 78 74 0a 2e 2f  -baseline.txt../
0750: 77 6f 72 64 63 6f 75 6e 74 20 2d 2d 74 69 6d 65  wordcount --time
0760: 72 20 2d 2d 73 75 6d 6d 61 72 79 20 77 63 64 62  r --summary wcdb
0770: 32 2e 64 62 20 24 2a 20 2d 2d 64 65 6c 65 74 65  2.db $* --delete
0780: 20 2d 2d 77 69 74 68 6f 75 74 2d 72 6f 77 69 64   --without-rowid
0790: 20 3e 77 63 2d 6f 75 74 2e 74 78 74 0a 20 20 69   >wc-out.txt.  i
07a0: 66 20 63 6d 70 20 2d 73 20 77 63 2d 6f 75 74 2e  f cmp -s wc-out.
07b0: 74 78 74 20 77 63 2d 62 61 73 65 6c 69 6e 65 2e  txt wc-baseline.
07c0: 74 78 74 3b 0a 20 20 74 68 65 6e 20 65 63 68 6f  txt;.  then echo
07d0: 20 68 69 20 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 0a   hi >/dev/null;.
07e0: 20 20 65 6c 73 65 20 65 63 68 6f 20 45 52 52 4f    else echo ERRO
07f0: 52 3a 3b 0a 20 20 20 20 20 20 20 64 69 66 66 20  R:;.       diff 
0800: 2d 75 20 77 63 2d 62 61 73 65 6c 69 6e 65 2e 74  -u wc-baseline.t
0810: 78 74 20 77 63 2d 6f 75 74 2e 74 78 74 3b 0a 20  xt wc-out.txt;. 
0820: 20 66 69 0a 0a 0a 23 20 43 6c 65 61 6e 20 75 70   fi...# Clean up
0830: 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73   temporary files
0840: 20 63 72 65 61 74 65 64 2e 0a 23 0a 72 6d 20 2d   created..#.rm -
0850: 72 66 20 77 63 64 62 31 2e 64 62 20 77 63 64 62  rf wcdb1.db wcdb
0860: 32 2e 64 62 20 77 63 2d 6f 75 74 2e 74 78 74 20  2.db wc-out.txt 
0870: 77 63 2d 62 61 73 65 6c 69 6e 65 2e 74 78 74 0a  wc-baseline.txt.