2015-04-23 655 views
0

我想在TCL腳本中執行sed命令。基本上我想在使用TCL讀取文件之前從輸入文件中刪除所有空行。所以我試圖在我的腳本中以下在TCL腳本中執行sed命令

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) 

請你給我解決這個&幫我做到這一點最好的方法?

+0

你可以試試這個'sed -i's/\ s * //''? –

+0

我能夠在shell上成功執行sed -i'/^\ s * $/d'.tmp.PG_Ring命令,但它不能在TCL腳本中運行 –

回答

4

這將不起作用,因爲單引號有 Tcl的特殊含義。 Tcl使用大括號來表示相同的東西(除非它們很好地嵌套),所以可以使用這個:。

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

太棒了!這工作.... :) –