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

时间:2014-10-31 05:05:01

标签: tcl tclsh

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

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

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

2 个答案:

答案 0 :(得分:1)

    set fp [open work.txt]
    set content [read $fp]
    regsub -all \{ $content "" content
    regsub -all \} $content "" content
    puts $content

答案 1 :(得分: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上有许多关于如何读写文件的答案。