fragment

This is a program to print a fragment of a file. It takes a filename,
a starting line (lines are numbered starting at 1) and an optional
end line or offset. It has one flag, `-nl`, which causes line numbers
not to be printed.

For example, compare the output to `nl -ba fragment.go`:

$ fragment fragment.go 23 +6
23: func main() {
24:     flag.Parse()
25: 
26:     if flag.NArg() < 2 || flag.NArg() > 3 {
27:             usage()
28:             os.Exit(1)
29:     }

$ fragment fragment.go 25 30
25: 
26:     if flag.NArg() < 2 || flag.NArg() > 3 {
27:             usage()
28:             os.Exit(1)
29:     }
30: 

$ fragment fragment.go 80
80
80:             if n > end {
81:                     return true
82:             }
83:             return false
84:     }
85: 
86:     fmt.Println(start)
87:     fmtStr += "\n"
88:     for i := start; !endFunc(i); i++ {
89:             fmt.Printf(fmtStr, i, lines[i])
90:     }
91: }

