;;;; run.scm (use awk test regex) (define (count-lines in) (awk (read-line in) (line) ([nlines 0]) ("^[ \t]*;" nlines) (else (add1 nlines)))) (define (max-linelength in) (awk (read-line in) (line) ([max-len 0]) (#t (max max-len (string-length line))))) (define (strip-blank in) (awk (read-line in) (line) ([lines '()]) ("[^ \t]" (cons line lines)) (else lines))) (define (read-passwd in) (let ([line (read-line in)]) (if (eof-object? line) (values line #f) (values line (string-split-fields ":" line #:infix))))) (define (sort-passwd in) (sort (awk (read-passwd in) (line fields) ([ans '()]) (#t (cons (cons (car fields) line) ans)) ) (lambda (x y) (string