-1

如何 使用 tcl 在文件(.txt)中用字母(例如'a')替换{和大括号?}

例如文件中的内容如下:

//-----------------------
main()
{
if (1)
  {
     printf("ok");
  }
else
  {
     printf("not ok");
  }
}
//------------------------------
4

2 回答 2

1
    set fp [open work.txt]
    set content [read $fp]
    regsub -all \{ $content "" content
    regsub -all \} $content "" content
    puts $content
于 2014-11-05T09:02:57.663 回答
0

用简单的替换来转换字符串string map,是正确的工具。您只需要稍微仔细地编写地图,因为您使用的是不平衡的大括号。

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

演示:

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

要转换文件,请将文件读入字符串,对该字符串进行转换,然后再次将其写出。Stack Overflow 上已经有很多关于如何读写文件的答案。

于 2014-10-31T11:19:15.423 回答