在tcl

时间:2019-04-22 04:17:21

标签: sed tcl

我遇到一个问题,我试图在TCL Shell中执行它时在sed命令中替换一个变量。 下面是我尝试过的。

set variable 5 
exec  sed "s/test1\$/test1;test1 $variable/g" file1 > file2

我看到以下错误。  错误:sed:-e表达式#1,字符75:`s'的未知选项         使用error_info获取更多信息。 (CMD-013)

我在堆栈溢出时尝试了一些链接,但这没有帮助。 Using a Variable in a sed command called in Tcl Script

1 个答案:

答案 0 :(得分:2)

一般方法是正确的。试试这个 1

▶ expect
expect1.1> set var /bin/sh
/bin/sh
expect1.2> exec sed -n "s%:$var\$%:/bin/bash%p" /etc/passwd
root:*:0:0:System Administrator:/var/root:/bin/bash
expect1.3> exec sed -n "s%:$var\$%:/bin/bash%p" /etc/passwd > /tmp/log

分析您的错误消息:

Error: sed: -e expression #1, char 75: unknown option to `s' 

请注意,sed至少包含75个字符-比您的代码示例中的字符多得多。这是否可以帮助您找出问题所在?如果没有,请更新您尝试的实际代码。


1 注意,期望只是在TCL上添加了一些扩展,而我的笔记本电脑上没有TCL。