Posted to tcl by mjanssen at Thu Oct 25 00:37:15 GMT 2007view raw
- set re {^$}
- fconfigure stdout -encoding binary -translation binary -buffering full
- proc filter {argv re} {
- foreach file $argv {
- set f [open $file r]
- fconfigure $f -encoding binary -translation binary -buffersize 8096
- set buffer ""
- while {![eof $f]} {
- while {[string first \n $buffer] == -1} {
- append buffer [read $f 8096]
- }
- set bl [split $buffer \n]
- foreach line [lrange $bl 0 end-1] {
- if {[regexp -- $re $line]} {puts $line}
- }
- set buffer [lindex $bl end]
- }
- close $f
- }
- }
- filter $argv $re
Comments
Posted by willdye at Fri Oct 26 21:23:59 GMT 2007 [text] [code]
mcvoy noted on the Tcl Chat that this script is currently 3.6 times slower than the roughly equivalent Perl script: $re='^$'; while(<>){ print if /$re/0;}