blob: b01a83accb8c158ecb8e10ae4b8b2221856326ad [file] [log] [blame]
mistachkin946ef602015-10-10 01:55:57 +00001#!/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}