在 TCL 脚本中执行 sed 命令

Execute sed command inside TCL script

我正在尝试在 TCL 脚本中执行 sed 命令。基本上我想在使用 TCL 读取文件之前从输入文件中删除所有空行。所以我尝试在我的脚本中遵循

 exec sed -i '/^\s*$/d' .tmp.PG_Ring
 set fid [open ".tmp.PG_Ring" r]

但是脚本正在转储错误。

sed: -e expression #1, char 1: unknown command: `''
while executing
"exec sed -i '/^\s*$/d' .tmp.PG_Ring"
(file "pg_ring.tcl" line 1)

你能帮我解决这个问题并帮助我找到最好的方法吗?

那是行不通的,因为单引号对 Tcl 没有 特殊含义。 Tcl 使用大括号来表示同样的事情(除了它们很好地嵌套),所以你可以使用这个:.

exec sed -i {/^\s*$/d} .tmp.PG_Ring