Tcl 如何替换文件中的特定字符

Tcl 如何替换文件中的特定字符,tcl,tclsh,Tcl,Tclsh,如何使用tcl将文件(.txt)中的{和}大括号替换为字母表(例如“a”) 例如,文件中的内容如下所示: //----------------------- main() { if (1) { printf("ok"); } else { printf("not ok"); } } //------------------------------ 要使用简单替换来转换字符串,stringmap是正确的工具。你只需要稍微小心地写地图,因为你使用的是不平衡的大括

如何使用tcl将文件(.txt)中的
{
}
大括号替换为字母表(例如“a”)

例如,文件中的内容如下所示:

//-----------------------
main()
{
if (1)
  {
     printf("ok");
  }
else
  {
     printf("not ok");
  }
}
//------------------------------
要使用简单替换来转换字符串,
stringmap
是正确的工具。你只需要稍微小心地写地图,因为你使用的是不平衡的大括号

set transformed [string map { \{ "abc" \} "def" } $original]
证明:

% set original "QBC{DEF}SHP"
QBC{DEF}SHP
% set transformed [string map { \{ "abc" \} "def" } $original]
QBCabcDEFdefSHP

要转换文件,请将文件读入字符串,对该字符串执行转换,然后再次将其写出。关于堆栈溢出,这里已经有很多关于如何读取和写入文件的答案。

请将您的尝试也放在问题中。您知道如何读取文件并再次写入吗?
    set fp [open work.txt]
    set content [read $fp]
    regsub -all \{ $content "" content
    regsub -all \} $content "" content
    puts $content