tcl中有一个命令允许在替换现有的基础上创建新的字符串:
string map ?-nocase? mapping string
tcl中是否有允许更改现有字符串的命令? 例如:
set string1 abcabcabc
通过使用某个命令将字母“a”替换为“0”以获取值为0bc0bc0bc的string1
答案 0 :(得分:1)
"
要替换文件(文件" file.txt"包含% set string1 abcabcabc
abcabcabc
% set string1 [string map {a 0} $string1]
0bc0bc0bc
):
abcabcabc
答案 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"