使用tcl执行sed命令时出错

Ani*_*ack 0 sed tcl

我使用的文件包含如下行:

first0.1.second1.1.third1 
first0.1.second2.2.third1
first0.n.second2.n.third1  
Run Code Online (Sandbox Code Playgroud)

我想替换".n." "{j}"// n属于[1-100]

所以所需的行如下所示:

first0.{j}.second1.{j}.third1 
first0.{j}.second2.{j}.third1
Run Code Online (Sandbox Code Playgroud)

我在tcl下使用以下命令

exec sed -i 's/\.[1-9]\./\.{j}\./g' file
Run Code Online (Sandbox Code Playgroud)

但我明白了

invalid command name "1-9"
Run Code Online (Sandbox Code Playgroud)

我怎么能做这个替换?

Din*_*esh 5

支持你的表达......

单引号不是引用机制Tcl,所以支持你的awk表达式,

exec sed -i {s/\.[1-9]\./\.{j}\./g} file
Run Code Online (Sandbox Code Playgroud)

参考: Tcl中经常犯的错误