TCL。替换文件中的字符串

时间:2016-04-26 20:06:15

标签: string dictionary replace tcl

tcl中有一个命令允许在替换现有的基础上创建新的字符串:

string map ?-nocase? mapping string

tcl中是否有允许更改现有字符串的命令? 例如:

set string1 abcabcabc

通过使用某个命令将字母“a”替换为“0”以获取值为0bc0bc0bc的string1

2 个答案:

答案 0 :(得分:1)

"

要替换文件(文件" file.txt"包含% set string1 abcabcabc abcabcabc % set string1 [string map {a 0} $string1] 0bc0bc0bc ):

abcabcabc

文档:fileutil包,packagesetstring

答案 1 :(得分:1)

尽管@peter解决方案运行良好。

在没有string包的情况下替换文件TCL中的fileutil

set fd [open "filename.txt" r]
set newfd [open "filename.txt.tmp" w]
while {[gets $fd line] >= 0} {
    set newline [string map {a 0} $line]
    puts $newfd $newline
}

close $fd
close $newfd
file rename -force "filename.txt.tmp" "filename.txt"