如何 使用 tcl 在文件(.txt)中用字母(例如'a')替换{
和大括号?}
例如文件中的内容如下:
//-----------------------
main()
{
if (1)
{
printf("ok");
}
else
{
printf("not ok");
}
}
//------------------------------
set fp [open work.txt]
set content [read $fp]
regsub -all \{ $content "" content
regsub -all \} $content "" content
puts $content
用简单的替换来转换字符串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 上已经有很多关于如何读写文件的答案。