#!/usr/bin/tclsh # # Usage: # prcontext <# lines of context> # (for platforms that don't have grep -C) # # Get the arguments # set pattern [lindex $argv 0] set num [lindex $argv 1] # # Get all of the lines in the file. # set lines [split [read stdin] \n] set index 0 foreach line $lines { if { [regexp $pattern $line match matchline] } { if { [ expr [expr $index - $num] < 0 ] } { set bottom 0 } else { set bottom [expr $index - $num] } set endLineNum [ expr [expr $index + $num] + 1] while {$bottom < $endLineNum} { set output [lindex $lines $bottom] puts $output set bottom [expr $bottom + 1] } } set index [expr $index + 1] }