我是tcl的新手。我正在尝试使用tcl脚本运行一些命令。
我在线搜索并了解我们可以使用exec
我执行了以下操作;
perl -i -p -e 's/hello linux./hello fedora. /g;' sample1.txt
从命令行它起作用了。它用hello fedora取代了所有hello linux的出现。
我尝试在我的tcl脚本中执行相同的命令。
set result [exec perl -i -p -e 's/hello linux./hello fedora. /g;' sample.txt]
我收到以下错误:
child process exited abnormally
我也尝试使用sed
命令。我得到了同样的错误。我猜语法有问题。我在网上搜索但我无法自己解决。
答案 0 :(得分:2)
'
不是tcl中的分组字符。 tcl中的等效分组是{}
。因此,正确的陈述是:
exec perl -i -p -e {s/hello linux./hello fedora. /g;} sample.txt
甚至:
exec perl -i -p -e "s/hello linux./hello fedora. /g;" sample.txt