1#!/usr/bin/tcl 2# 3# Replace string with another string -OR- include 4# only lines successfully modified with a regular 5# expression. 6# 7set mode [string tolower [lindex $argv 0]] 8set from [lindex $argv 1] 9set to [lindex $argv 2] 10if {$mode ni [list exact include]} {exit 1} 11if {[string length $from]==0} {exit 2} 12while {![eof stdin]} { 13 set line [gets stdin] 14 if {[eof stdin]} break 15 switch -exact $mode { 16 exact {set line [string map [list $from $to] $line]} 17 include {if {[regsub -all -- $from $line $to line]==0} continue} 18 } 19 puts stdout $line 20} 21