【问题标题】:Execute sed command inside TCL script在 TCL 脚本中执行 sed 命令
【发布时间】:2018-02-22 12:58:51
【问题描述】:

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

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

但脚本在 Error 之后转储。

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

您能否为我提供解决此问题的方法并帮助我找到最好的方法?

【问题讨论】:

  • 你可以试试sed -i 's/\s*//'吗?
  • 我能够在 shell 上成功执行 sed -i '/^\s*$/d' .tmp.PG_Ring 命令,但它在 TCL 脚本中不起作用

标签: sed tcl


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    相关资源
    最近更新 更多